如果在浏览器(Firefox、Chrome 等)中输入 URL,则会下载该文件。但是当我尝试使用 python 下载相同的文件(使用相同的 URL)时requests or urllib图书馆,我没有得到任何回应。
URL: https://www.nseindia.com/products/content/sec_bhavdata_full.csv https://www.nseindia.com/products/content/sec_bhavdata_full.csv(参考页:https://www.nseindia.com/products/content/equities/equities/eq_security.htm https://www.nseindia.com/products/content/equities/equities/eq_security.htm)
我尝试过的:
import requests
eqfile = requests.get('https://www.nseindia.com/products/content/sec_bhavdata_full.csv')
没有得到回应。然后尝试了以下方法
temp = requests.get('https://www.nseindia.com/products/content/equities/equities/eq_security.htm')
再次没有回应。
从此类 URL(Web 服务器)下载文件的最佳方式是什么?
如果我使用标题User-Agent
类似于真实网络浏览器使用的标头,然后我可以下载它。
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://www.nseindia.com/products/content/sec_bhavdata_full.csv'
r = requests.get(url, headers=headers)
#print(r.content)
with open('sec_bhavdata_full.csv', 'wb') as fh:
fh.write(r.content)
门户网站经常检查此标头以阻止请求或专门为您的浏览器/设备设置 HTML 格式。但requests
(and urllib.request
) send "python ..."
在这个标题中。
很多门户网站只需要'User-Agent': 'Mozilla/5.0'
发送内容,但其他可能需要完整的标头User-Agent
甚至其他标题,例如Referrer
, Accept
, Accept-Encoding
, Accept-Language
。您可以在页面上看到浏览器使用的标头https://httpbin.org/get https://httpbin.org/get
来自真实浏览器
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)