如何调试我的 Python 请求登录代码?我得到 status_code == 200 但我知道会话没有登录,因为它没有访问所有内容

问题描述 投票:0回答:0

我正在尝试从我所属的网站上抓取内容。该网站即将关闭,因此我正在尝试从中下载一些内容。我有权这样做。我知道登录不起作用,因为当我尝试从特定网页抓取链接时,该网页只有在您登录后才可见,但我没有得到任何结果。

我从 Google Chrome 中获取了有效负载键和值

Developer Tools
>
Network
>
Payload
(我检查了
Preserve Log
并登录了浏览器)。我从
Headers
选项卡中获得标题,在
Request Headers
下。我没有复制所有的标题,只复制了“accept”、“user-agent”、“origin”和“referer”。的

我的代码如下:

import requests
url = <WEBSITE URL>
login_url = <LOGIN URL>
username = <USERNAME>
password = <PASSWORD>
authenticity_token = <AUTHENTICITY TOKEN>

s = requests.session()
payload = {
    "member[email]": username,
    "member[password]": password,
    "commit": "Sign+In",
    "authenticity_token": authenticity_token
}

headers = {
    "accept": <ACCEPT VALUE>,
    "user-agent": <USER AGENT VALUE>,
    "origin": <ORIGIN URL>,
    "referer": <REFERER URL>
}

response = s.post(login_url, json=payload, headers=headers)
print(response.status_code)  # this prints '200'

正如我所提到的,当我使用这个会话 (

s
) 获取其他网页的内容时,我得到了那些页面的版本,这些版本显示给没有登录的人。

python authentication web-scraping python-requests
© www.soinside.com 2019 - 2024. All rights reserved.