Python3,通过按钮单击从url下载文件

Posted

技术标签:

【中文标题】Python3,通过按钮单击从url下载文件【英文标题】:Python3, download file from url by button click 【发布时间】:2018-06-22 16:11:19 【问题描述】:

我需要从https://freemidi.org/getter-13560这样的链接下载文件

但我不能使用urllib.requestrequests 库,因为它下载的是html,而不是midi。有什么解决办法吗?这里也是按钮本身的链接link

【问题讨论】:

【参考方案1】:

通过添加正确的标头并使用会话,我们可以使用请求模块下载并保存文件。

import requests

headers = 
            "Host": "freemidi.org",
            "Connection": "keep-alive",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
            "Accept-Encoding": "gzip, deflate, br",
            "Accept-Language": "en-US,en;q=0.9",
           

session = requests.Session()

#the website sets the cookies first
req1 = session.get("https://freemidi.org/getter-13560", headers = headers)

#Request again to download
req2 = session.get("https://freemidi.org/getter-13560", headers = headers)
print(len(req2.text))     # This is the size of the mdi file

with open("testFile.mid", "wb") as saveMidi:
    saveMidi.write(req2.content)

【讨论】:

谢谢!它终于起作用了。但是需要一些改变。输入 req2.content 而不是 req2.text,选择 'wb' 模式和 '.mid',而不是 '.midi*'

以上是关于Python3,通过按钮单击从url下载文件的主要内容,如果未能解决你的问题,请参考以下文章

单击 HTML 按钮时如何触发带有文本区域内容的文件下载

从 Dash/Flask 应用程序下载动态生成的文件

如何像用户单击一样单击 HTML 按钮

通过单击 Android Studio 中的按钮在 webview 中获取随机 Youtube 视频

如何通过单击 Python 3 中的按钮打开文件

如何通过单击按钮从颤振应用程序中使用应用内浏览器打开 URL?