Python 请求额外的登录字段

我是 Python 和 Python 请求的新手。


我正在尝试使用 Python 请求登录到一个站点以下载一些文件,但它失败了。当我查看表单数据时,似乎有一个名为“signInSecurity”的额外字段/变量,它传递一个随每次登录(令牌)而变化的值。我不知道如何将其添加到我的代码中。


有谁知道我需要在代码中添加什么才能成功登录?


import requests


with requests.session() as c:

    url = 'https://www.somewebsite.net/User/Sign-in/'

    USERNAME = 'address@example.com'

    PASSWORD = '*********'

r = c.get(url)

login_data = dict(username=USERNAME, password=PASSWORD)

cookie = {'PHPSESSID': requests.utils.dict_from_cookiejar(c.cookies) ['PHPSESSID']}

r = c.post(url, data=login_data, cookies=cookie, headers={"referer": "https://www.somewebsite.net/User/Sign-in/"})

page = c.get('https://www.somewebsite.net')


print(page.content)


莫回无
浏览 183回答 3
3回答

慕容森

每个网站处理用户登录的方式都不同。当您登录时,您应该始终通过该网站上的“开发人员工具”窗口查看页面上的每个元素(对不起,如果措辞不好)。解决这个问题;我的猜测是在页面内的 HTML 脚本中找到该变量。但是,不确定您将如何执行此操作。就个人而言,似乎不可能捕获每次形成请求时都会变化的令牌,除非它出现在 HTML 脚本中。不确定您是否关心,但 google 提供了 Google Sheets API 和 Google Drive API,您可以在其中使用 python 访问 google 文档(例如 JSON 或电子表格)。这是我从数据库访问数据时使用的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python