使用crawler4j在请求中发送cookie?

时间:2011-12-16 15:45:30

标签: java cookies web-crawler

我需要获取一些取决于GET请求中发送的cookie的链接。 因此,当我想使用crawler4j抓取页面时,我需要发送一些cookie来获取正确的页面。

这可能吗(我在网上搜索它,但没有找到有用的东西)?或者是否有能够执行此操作的Java爬虫程序?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:3)

看来crawler4j可能不支持Cookie:http://www.webuseragents.com/ua/427106/crawler4j-http-code-google-com-p-crawler4j-

有几种选择:

  • Nutch的
  • Heritrix的
  • WebSPHINX
  • JS​​pider
  • WebEater
  • WebLech
  • 蜘蛛
  • JOBO
  • Web的收获
  • 防爆履带
  • Bixo

我想说Nutch和Heritrix是最好的,我会特别强调Nutch,因为它可能是唯一一款能够很好地扩展并实际执行大爬行的爬虫。

答案 1 :(得分:0)

迟到这个帖子但实际上crawler4j在处理cookie方面做得很好。您甚至可以检查cookie值,因为您可以获取底层HTTP客户端(apache)。例如:

@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,但是crawler4j似乎更容易集成(使用maven依赖5分钟)并且非常适合我的需求(我正在测试会话cookie是否在我的网站上通过大量请求进行维护)。