2016-02-18 200 views
1

我的目标是登录到网站,然后获取我的帐户信息。我使用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

回答