【问题标题】:Can't use python requests to download flie in a webpage. (can be accessed by Chrome)无法使用 python 请求下载网页中的文件。 (可以通过 Chrome 访问)
【发布时间】: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


【解决方案1】:

您需要重新编写问题并添加更多信息。 在 Python 中你可以做这样的事情

import urllib.request
url = 'https://markets.businessinsider.com/bond/historical/canadacd-bonds_201921-bond-2021-ca135087j884'
with urllib.request.urlopen(url) as response:
   html = response.read()
print(html)

你可以使用请求来做

import requests as req
resp = req.get(url)
print(resp.text)

【讨论】:

  • 我刚试过你的方法,我得到一个错误“urllib.error.HTTPError: HTTP Error 404: Not Found”。如上所述,文件请求方法是POST,这里是GET。不过谢谢。
  • 如果您只是在resp = req.post(url) 中发帖,它会起作用。给我们更多关于你到底想要做什么的信息,为什么是 POST ?例如。由于我认为不够清晰,您的问题已被降级。但我们想帮助你
  • 我在描述中上传了一张图片,描述了Chrome下载的文件,我想用python下载这个文件。因为图中的请求方式是post,所以想用python模拟一个post请求来获取文件中的数据。 (如果我错了,请纠正我)
猜你喜欢
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多