2011-12-16 6 views
3

GETリクエスト内で送信されたCookieに依存するリンクを取得する必要があります。 したがって、私はcrawler4jでページをクロールしたいとき、正しいページを戻すためにいくつかのクッキーを送る必要があります。リクエストに応じてクッキーをcrawler4jで送信しますか?

これは可能ですか(ウェブを検索しましたが、何か有用なものが見つかりませんでした)。または、これを実行できるJavaクローラがありますか?

助けてください。

答えて

3

それはそのcrawler4jがクッキーをサポートしていない可能性があります表示されます。http://www.webuseragents.com/ua/427106/crawler4j-http-code-google-com-p-crawler4j-

いくつかの選択肢があります。

  • はNutchの
  • Heritrix
  • WebSPHINX
  • JSpider
  • WebEater
  • WebLech
  • クモ
  • JOBO
  • ウェブ収穫
  • 元クローラ
  • Bixo

私はNutchのとHeritrixは最高のものであることを言うだろうと私は上の特別な重点を置きますNutchはおそらくスケールアップして実際に大きなクロールを実行するように設計された唯一のクローラです。

+0

ありがとうございました。私はそれを見てみましょう。 –

0

このスレッドに遅れていますが、実際にはcrawler4jはクッキーを処理するうえで優れています。基になるHTTPクライアント(Apache)を保持できるので、Cookieの値を調べることさえできます。たとえば:

@Override 
public void visit(Page page) { 
    super.visit(page); 

    DefaultHttpClient httpClient = (DefaultHttpClient) getMyController().getPageFetcher().getHttpClient(); 
    for (Cookie cookie : httpClient.getCookieStore().getCookies()) { 
     if (cookie.getName().equals("somename")) { 
      String value = cookie.getValue(); 
     } 
    } 
} 

私は(私はそのセッションクッキーが多数にわたる私のサイト上で維持されてテストしていたのNutchで簡単に見えたが(Mavenの依存関係を使用して5分)を統合するために単純crawler4jようで、私のニーズに完璧でしたのリクエスト)。

+0

私は疑問を持っています! 1)この部分を説明できますか? if(cookie.getName()。equals( "somename")){ String value = cookie.getValue(); } どこにCookieを挿入すればよいですか? –

関連する問題