如何使用 Python 从法兰克福证券交易所网站下载 Blob URL 指向的 Excel 文件?
使用 python 从 blob url 下载文件
此问题涉及从法兰克福证券交易所网站下载 excel 文件,该文件指向一个 blob url。原始尝试使用 urllib 和 wget 检索该文件,但只返回了一个不可读的 289 字节文件。
问题:
- 可以使用 python 检索 blob 后面的文件吗?
- 如何揭开 blob 背后的“真实”url?
答案:
- 可以检索 blob 后面的文件。 由于服务器智能地拒绝了未指定用户代理的代码,因此需要伪造用户代理。
- 揭开 blob 背后的“真实”url 不必揭开。 python 脚本可以使用伪造的用户代理直接从 blob url 检索文件。
python 代码:
python 3
import urllib.request as request url = 'http://www.xetra.com/blob/1193366/b2f210876702b8e08e40b8ecb769a02e/data/all-tradable-etfs-etcs-and-etns.xlsx' # 伪造 safari 用户代理 fake_useragent = 'mozilla/5.0 (ipad; cpu os 6_0 like mac os x) applewebkit/536.26 (khtml, like gecko) version/6.0 mobile/10a5355d safari/8536.25' r = request.request(url, headers={'user-agent': fake_useragent}) f = request.urlopen(r) # 打印或写入 print(f.read())
python 2
import urllib2 url = 'http://www.xetra.com/blob/1193366/b2f210876702b8e08e40b8ecb769a02e/data/All-tradable-ETFs-ETCs-and-ETNs.xlsx' # 伪造 Safari 用户代理 fake_useragent = 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25' r = urllib2.Request(url, headers={'User-Agent': fake_useragent}) f = urllib2.urlopen(r) print(f.read())
以上就是如何使用 Python 从法兰克福证券交易所网站下载 Blob URL 指向的 Excel 文件?的详细内容,更多请关注其它相关文章!