2012-03-19 3 views
1

Jerichoのhtmlパーサーで遊んでいましたが、情報を見つけることができず、ユーザーエージェントを設定または変更する方法の例もありません。私は、クラスの構成を見つけたが、それを使用する方法を知らない、他の誰かが私に例を与えることができますか?Jerichoパーサーでユーザーエージェントを設定する方法

私が望むようにウェブサイトを解析することができましたが、ジェリコのパーサーがユーザーエージェントを追加するかどうかはわかりません。あなたが知っているように、私は適切なユーザーエージェントがサイトのコンテンツへのアクセスを禁止するようにしたいと思っています。

ありがとうございます。

+0

「わかっているように、適切なユーザーエージェントがサイトのコンテンツへのアクセスを禁止するようにしたいのですが」 - あなたのプログラムが対象のウェブサイト上の "robots.txt"の内容を無視するようにしようとしているようです。これはあなたがやろうとしているべきことではありません。ウェブページにアクセスするプログラムは、「robots.txt」の内容に従う必要があります。そうしないと、ウェブサイトがあなたのプログラムがスパムロボットであるとみなされ、あなたのプログラムがリクエストを送信しているIPアドレスからのリクエストをブロックすることになります。 – Jon

+0

あなたのポストのためにジョン、thnx、私は完全にrobots.txtを忘れました。とにかく、私がテストしたサイトは、ページをクロールすることを許可するようになりました(私はそれがGoogleのボットのためにインデックスを作成すると仮定します)。それでも、何らかの理由で許可されていないサイトがあるかもしれませんが、とにかに「通常の」ブラウザとして偽装してアクセスしようとします。誰もがエリコでそれをする方法を知っていますか?ありがとうございました。 Btw、あなたは私が誤用のためにコンテンツを "盗む"のではなく、私はたった今それを(たったの数日のように)します。 – AndaluZ

+0

さて、十分に公正。 Jericho APIを簡単に見てみました.Sourceというクラスのように見えますが、JDKのURLConnectionオブジェクトを渡すことができます。 URLConnectionでは、リクエストにヘッダーを設定できます。これらのヘッダーの1つは、「User-Agent」です。私はそれをやってみるだろう。メソッド "setRequestProperty"を見て、これを読んでください:http://stackoverflow.com/questions/5773800/httpurlconnection-redirection-does-not-use-request-properties-of-orginial-connec – Jon

答えて

3

上記のコメントに加えて、は常にに従ってください。robots.txtに従ってください。それを除いて、あなたが望むコードはこのように見えるはずです。

 

import java.net.URL; 
import java.net.URLConnection; 
import java.util.List; 

import net.htmlparser.jericho.Element; 
import net.htmlparser.jericho.Source; 

public class HtmlFun { 

    public static void main(String[] args) throws Exception { 
     URL url = new URL("http://www.google.com"); 
     URLConnection conn = url.openConnection(); 
     conn.setConnectTimeout(1000); 
     conn.setReadTimeout(1000); 
     conn.setRequestProperty("User-Agent", "Mozilla"); 

     Source source = new Source(conn); 
     List elems = source.getAllElements(); 
     for(Element elem : elems) { 
     System.out.println(elem); 
     } 
    } 
} 
 

ファイアウォールの問題のために仕事からは実行できませんが、これはうまくいくはずです。そうでない場合、同様のことがトリックを行います。

+0

ジョン、ありがとうあなたの助け、私は本当にそれを感謝します。私はあなたに投票することはできません。私は15の評判が必要です...それは何でも。とにかく私はあなたのポストを解決して確認しました、もう一度あなたに感謝します。 – AndaluZ

+0

心配はいりません。喜んで助けになる:-) – Jon