[英]Python Trouble Downloading excel file with Dynamic Url with No extension
我找不到使用 python 中的请求模块下载 excel 文件的方法 url 似乎是动态的,并且没有任何扩展,我删除下面的代码
download = requests.get('https://www.djppr.kemenkeu.go.id/page/loadViewer?idViewer=9369&action=download')
with open('file.xlsx', 'wb') as f:
f.write(download.content)
此代码的输出仅将 html 代码保存到文件中。 谁能帮我找到下载excel表的正确方法
首先,您应该检查您在download.content
获得的download.content
- 可能它会发送带有一些消息的 HTML,或者要求登录名和密码,或者有一些重定向到文件的 JavaScript。
您还应该检查您的网址在浏览器中的表现。 通过这种方式,您还可以查看它是否显示一些 HTML。
您甚至可以在浏览器中下载文件,然后您可以从浏览器中获取文件的真实 URL。 您可以查看是否可以在 HTML 中找到此 url,或者是否可以找到一些可用于生成 URL 的元素。
您的 url 提供具有<iframe>
和scr
HTML 页面,其中scr
具有到文件的相对 URL。 因此,您必须首先获取 HTML,然后搜索<iframe>
并获取相对src
,然后创建绝对 URL,然后下载文件。
import requests
from bs4 import BeautifulSoup
url = 'https://www.djppr.kemenkeu.go.id/page/loadViewer?idViewer=9369&action=download'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
src = soup.find('iframe')['src']
print(src)
url = 'https://www.djppr.kemenkeu.go.id' + src
r = requests.get(url)
with open('file.xlsx', 'wb') as f:
f.write(r.content)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.