首页 > 解决方案 > 使用没有 selenium 的 Python 下载文件,例如 Chrome 的“将链接另存为”

问题描述

有一个网页,我可以使用 chrome 中的“将链接另存为”选项下载 zip 文件,但是当我复制链接地址并在浏览器中打开它时,它会返回 403/forbidden。我尝试使用请求库保存文件,但它也得到禁止响应。

我不知道 chrome 如何下载它,但我无法使用 requests 库下载。

如何在不使用 selenium web 驱动程序的情况下下载文件,因为这对于这个简单的任务来说太过分了?

标签: pythonseleniumgoogle-chromepython-requestsurllib2

解决方案


我建议对此使用请求。下面的简单示例已填写第一个文件:

url = 'https://www.nseindia.com/content/historical/EQUITIES/2003/DEC/cm01DEC2003bhav.csv.zip'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', 'Referer': 'https://www.nseindia.com/'}
r = requests.get(url, allow_redirects=True, headers=headers)
open('cm01DEC2003bhav.csv.zip', 'wb').write(r.content)

网站检查标头中的引用者,如果引用者与网站本身不匹配,则拒绝请求。


推荐阅读