我的目标是登录到网站,然后获取我的帐户信息。我使用crawler4j 4.2使用crawler4j进行身份验证
AuthInfo authJavaForum = new FormAuthInfo("myuser", "mypwd", "http://www.java-forum.org", "login", "password");
config.addAuthInfo(authJavaForum);
PageFetcher pf = new PageFetcher(config);
CrawlController ctrl = new CrawlController(config, pf, robotsts);
// add the page I want as seed
ctrl.addSeed("http://www.java-forum.org/account/personal-details");
ctrl.startNonBlocking(BasicCrawler.class, 5);
在记录我看到的身份验证是全成,我也看到,HTTP客户端连接现在包含一个cookie,包含我从网站得到的会话。但似乎我仍然失去了一些东西,请求得到我的个人资料与错误代码403(禁止),如果我没有登录失败。
我用wireshark为了看到不同时使用crawler4j和手动登录,但请求似乎是相同的(最大的区别是,我的cookie不包含任何关于ga的信息(谷歌分析))
1)如何保持登录状态?在?
2)是否还有其他问题阻止我保持登录状态?
3)有没有实际上与crawler4j一起工作的网站?
是我到目前为止已经试过:(克隆的资源库)
一)PageFetcher的构造函数中设置的CookieStore(虽然它是由在HTTP客户端库中的默认值)
B)创建fetchPage(内PageFetcher)我创建了一个HttpClientContext,设置的CookieStore,并通过其传递给execute方法
没有成功,但。
我也试过webmagic,为了支持(形式)的认证用我自己的下载/ httpClientGenerator扩展它,但我有同样的问题
相关的问题:Crawler4j with authentication