python - Python requests.post 不发布(使用 cloudfare 绕过)
问题描述
我创建了一个脚本,它将在以下位置创建和帐户: https ://stress95.com/en/auth/view?op=register
import requests
import cloudscraper
import time
url = ('https://stress95.com/en/auth/view?op=register')
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}
payload = {'firstName': 'test', 'email': 'afaff@pytronik.club', 'password': '12341fbb14', 'action': 'register', '_AntiCsrfToken': '3dee97c161c84c13a4400d19a8c6565c'}
scraper = cloudscraper.create_scraper(interpreter='nodejs') # returns a CloudScraper instance
# Or: scraper = cloudscraper.CloudScraper() # CloudScraper inherits from requests.Session
#print(scraper.get(url).text)
r = scraper.post(url, data=payload, headers=headers)
print(r.text)
请帮帮我,我对此感到疯狂
解决方案
这是因为你发错地方了。您链接的 url 是具有注册表单的端点。该注册表在这里发布:
<form action="/en/auth/submit" method="post" class="login-form">
...
</form>
仅仅发布到他们的页面不太可能做很多事情也毫无价值,因为他们表单中的第一个元素作为反 csrf 令牌:
<input type="hidden" name="_AntiCsrfToken" value="149d3fbcfdf74aec9eed68a4b78d33bf">
除非您从页面加载,否则您的帖子不会具有该值,这意味着他们只会拒绝您的请求。
推荐阅读
- swift - 如何获得 SwiftUI 颜色的明暗模式版本?
- python - 如何更改此熊猫数据框中的 unix 时间
- python - 如何在绘图破折号中向直方图添加垂直线?
- firebase - Cloud Firestore 数据建模
- python - 如何将 automl 模型(使用 autosklearn)转换为 pmml?
- node.js - 向数组添加元素而不重复MongoDB
- powerbi-desktop - 带过滤器的日期差异
- javascript - 无法使用 proxyquire 正确存根
- javascript - 在 javascript 中使用 c 样式 ifdef 的最佳实践?
- opencv - 普通相机与远心相机的立体标定