【发布时间】:2020-01-20 04:58:21
【问题描述】:
我想从website 下载一个包含历史价格的 XHR 文件。这个文件可以被Chrome访问(如picture所示)。这是文件file link的url(如果您单击此链接,网页将显示该文件未找到,因为您的浏览器发送了GET请求并且文件请求方法是POST。)但重点是返回的状态码Chrome 是 200 但是当我使用 python 模拟一个 post 请求时,返回的状态码是 500(即无法访问)。
代码如下:
import requests
header = { "origin": "https://markets.businessinsider.com",
"referer": "https://markets.businessinsider.com/bond/historical/5_750-canada-government-of-bond-2029-ca135087wl43",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"x-requested-with": "XMLHttpRequest"}
url = 'https://markets.businessinsider.com/Ajax/BondController_HistoricPriceList/canadacd-bonds_201921-bond-2021-ca135087j884/STU/20.12.2019_20.1.2020'
s = requests.Session()
s.headers.update(header)
print(s.post(url).status_code)
输出:
500
【问题讨论】:
-
请edit您的帖子添加错误消息。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。
-
请以minimal reproducible example 的形式提供一些输出。
标签: python ajax beautifulsoup web-crawler