我需要获取一些取决于GET请求中发送的cookie的链接。 因此,当我想使用crawler4j抓取页面时,我需要发送一些cookie来获取正确的页面。
这可能吗(我在网上搜索它,但没有找到有用的东西)?或者是否有能够执行此操作的Java爬虫程序?
任何帮助表示感谢。
答案 0 :(得分:3)
看来crawler4j可能不支持Cookie:http://www.webuseragents.com/ua/427106/crawler4j-http-code-google-com-p-crawler4j-
有几种选择:
我想说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是否在我的网站上通过大量请求进行维护)。