理解Python请求模块

时间:2018-03-28 07:39:31

标签: python-3.x web-scraping python-requests

所以我目前正在学习python请求模块,但我有点困惑,并且想知道是否有人可以引导我朝着正确的方向前进。我曾经看到有些人在他们想要登录网站时发布标题,但他们从哪里获取这些标题以及何时需要它们?我也看到有些人说你需要一个身份验证令牌,但我已经看到其他一些解决方案甚至根本不使用头文件或身份验证令牌。这应该是身份验证令牌,但在发布用户名和密码后,我不确定从哪里开始。

<input type="hidden" name="lt" value="LT-970332-9KawhPFuLomjRV3UQOBWs7NMUQAQX7" />

1 个答案:

答案 0 :(得分:1)

虽然你的问题有点模糊,但我会尽力帮助你。

验证

Web浏览器(客户端)可以通过提供数据(通常是对登录/密码)在目标服务器上进行身份验证,这通常是出于安全原因进行编码。

可以使用HTTP请求的以下部分将此数据从客户端传递到服务器:

  1. 网址参数(http://httpbin.org/get?foo=bar
  2. 标题
  3. 正文(这是来自POST表格的HTML参数通常去的地方)
  4. 令牌

    成功验证服务器生成唯一令牌并将其发送到客户端。如果服务器希望客户端将令牌存储为cookie,则其响应中包含Set-Cookie标头。

    令牌通常表示用户会话的唯一标识符。在大多数情况下,出于安全原因,令牌具有到期日期。

    Web浏览器通常将令牌存储为内部cookie存储中的cookie,并在对相应网站的所有后续请求中使用它们。单个网站可以为单个用户使用多个令牌和其他Cookie。

    研究

    每个网站都有自己的身份验证格式,规则和限制,因此首先需要做的是对目标网站进行一些研究。您需要获取有关客户端向服务器发送身份验证信息的信息,服务器回复的内容以及存储会话数据的位置(通常您可以在客户端请求标头中找到它)。

    为此,您可以使用代理(例如Burp)拦截浏览器流量。它可以帮助您将数据从客户端传递到服务器并返回。

    尝试进行身份验证,然后使用带有代理的Web浏览器浏览目标站点上的某些页面。之后,使用您的代理,检查客户端和浏览器用于存储有关会话和身份验证的信息的HTTP请求/响应的哪些部分。

    之后你最终可以使用python和requests做你想做的事。