【问题标题】:Scraping data from external site with username and password使用用户名和密码从外部站点抓取数据
【发布时间】:2015-05-05 22:19:18
【问题描述】:

我有一个包含许多用户的应用程序,其中一些用户在外部网站上拥有一个帐户,其中包含我想要抓取的数据。

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

外部站点没有 API。

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

我将如何在 Python 中解决这个问题,即我是否需要在 Python 驱动的服务器上运行 GUI Web 浏览器来处理 cookie(我宁愿不这样做)?

【问题讨论】:

    标签: python authentication cookies


    【解决方案1】:
    1. 通过在浏览器的检查器中检查登录调用的格式来查找页面对后端的调用。
    2. 在使用 getpass 从终端或通过 GUI 获取用户凭据后发出相同的请求。您可以使用urllib2 提出请求。
    3. 将响应中的所有 cookie 保存在 cookiejar 中。
    4. 在后续请求中重复使用 cookie 并获取数据。

    然后,利润。

    【讨论】:

    • 您的cookiejar 链接与getpass 链接相同
    • @heinst 修复了链接。感谢您的提醒。 :)
    【解决方案2】:

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

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

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

    没有更多信息,我们无法为您提供更多帮助。

    【讨论】:

      猜你喜欢
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      相关资源
      最近更新 更多