Java 使用crawler4j进行身份验证

Java 使用crawler4j进行身份验证,java,authentication,crawler4j,Java,Authentication,Crawler4j,我的目标是登录到一个站点,然后获取我的帐户信息。我正在使用crawler4j4.2 AuthInfo authJavaForum = new FormAuthInfo("myuser", "mypwd", "http://www.java-forum.org", "login", "password"); config.addAuthInfo(authJavaForum); PageFetcher pf = new PageFetcher(config); CrawlController ctr

我的目标是登录到一个站点,然后获取我的帐户信息。我正在使用crawler4j4.2

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 analytics))

1) 如何保持登录状态

2) 是否还有其他问题阻止我继续登录

3) 是否有任何网站实际使用crawler4j

到目前为止我所尝试的:(克隆了存储库)

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

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

但是没有成功

我还尝试用我自己的downloader/httpClientGenerator扩展它,以支持(表单)身份验证,但我遇到了同样的问题


相关问题:

这真的很尴尬。再次检查页面,特别是表单后,我意识到
操作
指向login/login。因此,当将URL更改为我的
AuthInfo
中时,我会得到我的个人详细信息。

这真是令人尴尬。再次检查页面,特别是表单后,我意识到
操作
指向login/login。因此,当将URL更改为my
AuthInfo
内时,我会获得我的个人详细信息