python - Post request with payload and headers returns error page
问题描述
I am trying the get the content from a tvguide source https://sinematv.com.tr/Yayin-Akisi With the below code, I receive an html page but it is just a runtime error message. Most probably I am making a mistake when posting payload or headers. What could be the problem?
url = 'https://sinematv.com.tr/Yayin-Akisi'
session = requests.Session()
request = session.get(url)
token = request.cookies['__RequestVerificationToken']
cookies = request.cookies
headers = {
"authority": "sinematv.com.tr",
"path": "/Asset/GetTvGuide/",
"scheme": "https",
"accept": "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "tr-TR,tr;q=0.9,en-TR;q=0.8,en;q=0.7,en-US;q=0.6",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"origin": "https://sinematv.com.tr",
"referer": "https://sinematv.com.tr/Yayin-Akisi",
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
}
payload = {"date": "16.10.2020", "__RequestVerificationToken":token}
response = requests.post(
"https://sinematv.com.tr/Asset/GetTvGuide",
data=payload,
headers=headers,
cookies=cookies,
)
print(response.content)
解决方案
获取令牌的逻辑错误。它不是来自cookie,而是来自页面上的隐藏元素。
尝试这个:
import requests
from bs4 import BeautifulSoup
url = 'https://sinematv.com.tr/Yayin-Akisi'
session = requests.Session()
request = session.get(url)
soup = BeautifulSoup(request.content, "html.parser")
token = soup.find("input", {"name": "__RequestVerificationToken"})["value"]
payload = {
"date": "16.10.2020",
"__RequestVerificationToken": token
}
response = session.post(
"https://sinematv.com.tr/Asset/GetTvGuide",
data=payload
)
print(response.content)
推荐阅读
- amazon-ec2 - 如何部署和使用 laravel-scout 和 Meilisearch 到 ec2 实例
- python - Google Foobar 挑战 Minion 工作任务
- wpf - 如何使用 WPF PrintDialog 在内部创建 ODTTF 字体而不是从我的嵌入字体制作字形图像 (.png)?
- arrays - 将索引位置更改为 0 与 swift 中的条件匹配
- ms-access-2016 - 从多个列中选择最新的并组合成一个字段
- ruby-on-rails - 我可以在 Rails 的视图组件中使用 yield 吗?
- server - 在 Windows cmd 上运行 Wildfly 20
- python - 使用 python 从数据选项卡中抓取评论
- javascript - 错误:学生班中的构造函数学生不能应用于给定类型;超级(姓名,注册);
- javascript - 不发生反序列化