【发布时间】:2020-06-01 21:19:15
【问题描述】:
我正在尝试为我拥有的设备抓取网站。该设备将其数据上传到该站点,该站点本身不提供 API 或任何其他编程方式供我访问此数据。
一个成功的看起来像这样(每个浏览器检查工具):
- 获取/站点/登录。
- 发布/站点/登录
- 302 到 /Site/Index
- 302 转 /Customer/Account
- 302 到 /Customer/Account/email%40domain.tld
这是我到目前为止的代码:
#!/usr/bin/python3
import requests
import json
payload = {
"Email" : email,
"Password" : password,
"Remember" : 'false'
}
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language' : 'en-US,en;q=0.5',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0',
}
s = requests.Session()
s.get('https://www.wifi.ecowater.com/Site/Login')
# Add the RequestVerificationToken to the payloay.
RVT = requests.utils.dict_from_cookiejar(s.cookies)
payload['__RequestVerificationToken'] = RVT['__RequestVerificationToken']
r = s.post('https://www.wifi.ecowater.com/Site/Login', params=payload, headers=headers)
print(r.text)
这段代码给我一个错误页面,几乎就像请求没有遵循所有重定向一样。
根据 Firefox 的浏览器检查工具,以下是上述 5 个步骤的 curl 命令。
编辑:尝试发布 5 个 curl 命令,但是当我这样做时,stackoverflow 将其标记为垃圾邮件,并且不允许我发布。
【问题讨论】:
标签: python asp.net session curl cookies