使用用户名和密码从外部站点刮取数据

时间:2015-05-05 14:10:38

标签: python authentication cookies

我有一个有很多用户的应用程序,其中一些用户在外部网站上有一个帐户,上面有我想要搜索的数据。

此外部网站的成员区域受电子邮件/密码表单保护。这会在提交时设置一些cookie(几个ASP)。然后,您可以提取所需的页面并获取外部站点为刚刚登录的用户保留的数据。

外部网站没有API。

我设想我的应用程序要求用户提供外部站点的凭据,代表他们登录并获取我们想要的数据。

我将如何在Python中进行此操作,即我是否需要在Python处理cookie的服务器上运行GUI Web浏览器(我不愿意)?

2 个答案:

答案 0 :(得分:2)

  1. 通过检查浏览器检查员中登录呼叫的格式,找到该页面对后端的调用。
  2. 使用getpass后从终端或通过GUI获取用户凭据后发出相同的请求。您可以使用urllib2发出请求。
  3. 将回复中的所有Cookie保存在cookiejar
  4. 在后续请求中重用cookie并获取数据。
  5. 然后,获利。

答案 1 :(得分:1)

通常,这是通过会话执行的。

我建议您使用请求库(http://docs.python-requests.org/en/latest/)来执行此操作。

您可以使用会话功能(http://docs.python-requests.org/en/latest/user/advanced/#session-objects)。只需执行身份验证HTTP请求(网址和参数取决于您要请求的网站),然后对您想要抓取的资源执行请求。

如果没有进一步的信息,我们无法帮助您。