关于登录后的启动爬虫时保持cookie的问题

长安的瓦力 发布于 2014/12/17 16:54
阅读 4K+
收藏 0

@黄亿华 你好,想跟你请教个问题:您好,我在用Httpclient模拟登录以后用jobhunter的例子爬取登录后网页的时候爬取的却是登录界面的内容,怀疑是没有保持cookie,请问怎样才能将我获取到的cookie传给爬虫?本人超级菜鸟,如果问题幼稚,还请多多包涵。

 



这是定义cookie相关
private static BasicCookieStore cookieStore = new BasicCookieStore();
	Registry<CookieSpecProvider> cookieSpecRegistry = RegistryBuilder
			.<CookieSpecProvider> create()
			.register(CookieSpecs.BEST_MATCH, new BestMatchSpecFactory())
			.register(CookieSpecs.BROWSER_COMPATIBILITY,
					new BrowserCompatSpecFactory()).build();
	private CloseableHttpClient client = HttpClients.custom()
			.setDefaultCookieStore(cookieStore)
			.setDefaultCookieSpecRegistry(cookieSpecRegistry).build();

post模拟登录提交后返回的页面是String类型的值,然后根据以下代码获取要爬取的界面

Document document2 = Jsoup.parse(result1);
String url2 = document2.select("a#hlInBox").attr("href");
HttpGet httpget2 = new HttpGet(url1+url2);
HttpResponse response2 = httpclient.execute(httpget2);

下面是爬虫的启动

OOSpider.create(
 Site.me().setUserAgent(
 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36"),
 jobInfoDaoPipeline, TestJobInfo.class)
 .addUrl(url).thread(5).run();

url是登录后的地址,如果未登录则自动跳转到登录界面。







加载中
0
HZ先生
HZ先生
webmagic 本身不支持登陆的,但是你能获取cookie值的话,并且确认不需要其他的条件能进入目标页面的话,site.addCookie();
返回顶部
顶部