python - 使用 Fiddler 使用 python 脚本复制浏览器操作

标签 python python-requests

我正在尝试使用 python 和 requests 模块登录网站。

我的问题是,即使我输入了用户名/密码并尝试在登录后访问页面,我仍然看到登录页面 - 换句话说,我没有通过登录页面,即使虽然看起来很成功。

我了解到每个网站的流程可能不同,因此我需要添加什么来解决问题并不明显。

有人建议我下载一个类似 Fiddler 的网络流量窥探器然后尝试使用我的 python 脚本复制操作。

我已经下载了 Fiddler,但我对如何查找和复制我需要的操作有点不知所措。

如有任何帮助,我们将不胜感激。


我的原始代码:

import requests
payload = {
    'login_Email': 'xxxxx@gmail.com',
    'login_Password': 'xxxxx'
}

with requests.Session() as s:
    p = s.post('https://www.auction4cars.com/', data=payload)
    print p.text

最佳答案

如果您查看浏览器开发者工具,您可能会看到登录 POST 请求需要提交到不同的 URL:

https://www.auction4cars.com/Home/UserLogin

请注意,payload 也需要:

payload = {
    'login_Email_or_Username': 'xxxxx@gmail.com',
    'login_Password': 'xxxxx'
}

在这样做之前我仍然会访问登录页面并设置标题:

HOME_URL = 'https://www.auction4cars.com/'
LOGIN_URL = "https://www.auction4cars.com/Home/UserLogin"

with requests.Session() as s:
    s.headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
    }
    s.get(HOME_URL)

    p = s.post(LOGIN_URL, data=payload)
    print(p.text)  # or use p.json() as, I think, the response format is JSON

关于python - 使用 Fiddler 使用 python 脚本复制浏览器操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53916602/

相关文章:

python - 在 python attrs 类中,如何用我自己的重写生成的 __init__

python - 在 python 中读取 (SVHN) 数据集

python - Keras Python 多图像输入形状错误

python - 升级urllib3导致cloud-init失败,显然urllib3和python请求存在版本兼容性问题?

python - 如何使用 Imdbpy 库获取电影的长度?

python - 为什么不应该将重复对象添加到我的 Python 集中?

python - 在同一 Tensorflow session 中从 Saver 加载两个模型

请求中的 Python 2.7.6 TLSv1.2

python - 网站能否知道请求是通过 "requests"python 库发出的?

Python 请求不适用于 https 代理