2014-11-05 66 views
0

我一直在使用Java从一个网站提取一些值。但是,我现在需要从另一个网站提取一些值,但本网站要求您登录才能看到该页面。我有一个用于登录的用户名和密码,但是我在使用HTTPclient或HTMLUnit在Java上使用自动登录方面没有成功。如何从使用Java的网站中提取受登录保护的数据?

有没有什么办法可以解决这个问题并从登录保护页面提取数据?

+0

JSoup与这种类型的东西很不错。我会看到他们的图书馆提供什么。 – ryekayo 2014-11-05 18:15:17

+0

你认为有可能做到这一点,而无需让程序找到表格,填写表格,按回车等 – 2014-11-05 18:16:36

+0

不,你仍然需要认证自己,但JSoup可能有某种模块,可能会使登录认证更容易 – ryekayo 2014-11-05 18:17:46

回答

3
  1. 在您的代码中,模拟用户登录。通常,这意味着在适当的表单参数中使用用户名和密码值登录到登录URL。要从HTTP角度看这看起来像什么,使用一个工具来显示请求的内容(wireshark,浏览器插件)。

  2. 捕获从登录页面的POST返回的cookie。可能有一个或多个会话cookie--即识别您与服务器会话的cookie。

  3. 将这些cookie包含在对该站点的后续请求中。这些请求不应该被认为是来自经过身份验证的用户。

+0

正如我在这个问题中所说,我已经尝试过,并没有成功。有没有办法做到这一点,如果不这样做,或者如果没有,你能否提供一个代码模板,我可以输入我想登录的网站的适当值?特别是饼干部分,我遇到了麻烦 – 2014-11-05 18:21:09

+0

http://stackoverflow.com/questions/4582471/problem-simulating-http-post-using-httpclient有'HTTPContext'的答案可能是你正在寻找的东西对于。 – 2014-11-05 18:26:26