python - 使用不带硒的Python下载文件,例如Chrome的“另存为”

原文 标签 python selenium google-chrome python-requests urllib2

有一个web page我可以在Chrome中使用“保存链接AS”选项下载zip文件,但是当我复制link address并打开浏览器时,它返回403 /禁止。我试图使用请求库保存文件,但它也得到了禁止的响应。
我不知道Chrome如何下载它,但我不能使用请求库下载。
在不使用selenium web驱动程序的情况下,如何下载该文件,因为对于这个简单的任务来说,这将是一个过火的任务?

最佳答案

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

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)

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

相关文章:

python - 使用pygithub的登录问题

python - python O(n log n)中算法的时间复杂度

python - 我们如何在循环中创建Selenium Webdriver对象并在循环结束后关闭窗口?

python - 如何在conda环境中安装Selenium?

javascript - 纯JavaScript编程

javascript - Chrome扩展程序无法在新标签页中打开所有“输入类型=”提交”按钮

html - Google Chrome更新后,Flash对象无法正常工作

python - 如何在python中验证用户密码的root权限

python - 来自Tensorflow模型的返回层激活和权重在单独的线程中

python - 尝试一次通过搜索发送一个列表项