首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于crawler4j的身份验证

基于crawler4j的身份验证
EN

Stack Overflow用户
提问于 2016-02-18 12:46:40
回答 1查看 1.1K关注 0票数 1

我的目标是登录到一个网站,然后获取我的帐户信息。我使用的是crawler4j 4.2

代码语言:javascript
复制
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 (google )的信息)。

1)如何才能保持登录状态?

( 2)还有其他问题阻止我继续登录吗?

( 3)是否有真正与crawler4j合作的网站?

到目前为止,我尝试过的是:(克隆存储库)

( a)在CookieStore的构造函数中设置PageFetcher (尽管默认情况下它是在http-客户机库中创建的)

( b)在fetchPage ( PageFetcher)中,我创建了一个HttpClientContext,设置了cookieStore,并将其传递给了execute方法

但没有成功。

为了支持(表单)身份验证,我还尝试了网魔法并使用我自己的下载程序/httpClientGenerator扩展了它,但我也遇到了同样的问题

相关问题:具有身份验证的Crawler4j

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-18 15:12:12

这真的很尴尬。在再次检查页面,特别是表单之后,我意识到action指向了登录/登录。因此,当在我的http://www.java-forum.org/login/login中将URL更改为AuthInfo时,我会得到我的个人详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35481903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档