【发布时间】:2011-12-16 15:45:29
【问题描述】:
我需要获取一些链接,这些链接取决于 GET 请求中发送的 cookie。 因此,当我想使用 crawler4j 抓取页面时,我需要发送一些 cookie 以获取正确的页面。
这可能吗(我在网上搜索过,但没有找到有用的东西)?或者有没有 Java 爬虫可以做到这一点?
任何帮助表示赞赏。
【问题讨论】:
标签: java cookies web-crawler
我需要获取一些链接,这些链接取决于 GET 请求中发送的 cookie。 因此,当我想使用 crawler4j 抓取页面时,我需要发送一些 cookie 以获取正确的页面。
这可能吗(我在网上搜索过,但没有找到有用的东西)?或者有没有 Java 爬虫可以做到这一点?
任何帮助表示赞赏。
【问题讨论】:
标签: java cookies web-crawler
似乎 crawler4j 可能不支持 cookie:http://www.webuseragents.com/ua/427106/crawler4j-http-code-google-com-p-crawler4j-
有几种选择:
我会说 Nutch 和 Heritrix 是最好的,我会特别强调 Nutch,因为它可能是仅有的旨在实现良好扩展并实际执行大爬的爬虫之一。
【讨论】:
迟到了这个线程,但实际上 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 在我的网站上跨大量请求维护)。
【讨论】: