首页 > 解决方案 > 无法使用 Python 会话请求登录网站

问题描述

我是网络抓取的新手,我正在尝试使用 requests.Session() 登录到imagingrewardsprogram.com。我已经能够成功登录到其他网站,但我很困惑为什么我无法登录到这个网站。

当我在 Google Chrome 中登录该站点并在开发人员工具中查看表单数据时,我可以看到我传递给我的代码的表单数据与我传递给 Web 浏览器的表单数据相同( “用户”和“密码”)。我确定还有一些我应该传递的东西我错过了,但我不确定它是什么。

这是我的代码:

loginURL = 'https://imagingrewardsprogram.com'
requestURL = ''https://imagingrewardsprogram.com/merlin/pnaimaging?command=get&style=home'

payload = { 
    'user': myusername,
    'password': mypassword,
    'command':'get',
    'style':'home'
}

with requests.Session() as session:
    post = session.post(loginURL, data=payload)
    r = session.get(requestURL)
    print(r.text)

我得到的输出是一个页面,上面写着“您的会话已过期或在获取您的帐户信息时发生错误。”

任何指导表示赞赏!

标签: pythonweb-scrapingpython-requestspython-3.4

解决方案


也许一个原因可能是您尝试访问的网站使用了更高的安全性,不允许自动登录。

因此,这就是您无法使用脚本创建会话的原因。验证码和重新验证码等安全性用于防止自动登录。


推荐阅读