如何在请求会话期间注销网站

时间:2018-03-22 15:19:15

标签: python python-requests

我试图从需要登录的网站上搜集一些数据。更复杂的是,我正在从三个不同的账户中抓取数据。换句话说,我需要登录该站点,抓取数据然后注销三次。

注销按钮后面的html如下所示: html

我尝试过的(非常简化的)代码如下:

import requests

for account in [account1,account2,account3]:

    with requests.session() as session:

        [[login code here]]

        [[scraping code here]]

        session.get(url + "/logout")

使用第一个帐户的抓取工作正常,但在此之后它没有。我假设这是因为我没有正确退出。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

这很简单:

您应该伪造正确的登录请求。

要执行此操作,请转到登录页面:

  1. 打开'检查'工具,'网络'标签。选中“保留日志”选项也非常有用。
  2. 登录该站点,您将看到登录请求出现在“网络”选项卡中(通常是POST请求)。
  3. 右键单击以请求,选择复制 - >复制为Curl,然后使用this brilliant tool
  4. 通常,您可以修剪该工具生成的代码的标题和Cookie(但要小心修剪Content-Type标题,它可能会破坏您的代码。)
  5. requests.[get|post](...)替换为session.[get|post](...)
  6. 利润。您将通过执行高级代码登录会话。注销和任何表单填充都是完全相同的。