python - 使用没有 Selenium 的 Python 下载文件,例如 Chrome 的 "Save Link As"

标签 python selenium google-chrome python-requests urllib2

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

我不知道chrome怎么下载,但是我用requests库下载不了。

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

最佳答案

我建议为此使用请求。下面的简单示例,其中填充了第一个文件:

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)

网站检查 header 中的 referer,如果 referer 与网站本身不匹配,则拒绝请求。

关于python - 使用没有 Selenium 的 Python 下载文件,例如 Chrome 的 "Save Link As",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53838443/

相关文章:

Css sourceMappingURL 在 Chrome 59.0.3071.115 中不能正常工作

python - Pandas :将不同的功能应用于不同的列

python - 关于 ec2 上 MongoDB 的安全性?

python - 对列表进行排序不会产生正确的结果

Java增强for循环和IndexOutOfBoundsException?

android - Webview 在更新 chrome 76 后显示空白页面

Python 循环中的 v 堆栈

loops - 如何永远重复 Selenium 测试脚本

java - 为Selenium编写正确的Xpath:引起标签前的问题

google-chrome - Chrome 浏览器如何知道要提示站点的客户端证书?