这289字节长的东西可能是一个用于403 forbidden
页面的HTML代码。发生这种情况是因为服务器很聪明,如果代码没有指定用户代理,则会拒绝服务器。
的Python 3
# python3
import urllib.request as request
url = 'http://www.xetra.com/blob/1193366/b2f210876702b8e08e40b8ecb769a02e/data/All-tradable-ETFs-ETCs-and-ETNs.xlsx'
# fake user agent of 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 or write
print(f.read())
的Python 2
# python2
import urllib2
url = 'http://www.xetra.com/blob/1193366/b2f210876702b8e08e40b8ecb769a02e/data/All-tradable-ETFs-ETCs-and-ETNs.xlsx'
# fake user agent of 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())
我我的答案更新。 – Jeon
感谢您的回答。我需要能够将文件下载到磁盘(最好能够覆盖),而不是“读取”它。 – Winterflags
这是一个例子。一旦你'f.read()',你可以把它写入另一个文件。重点是使用假代理来检索excel文件。之后,它就像文件操作一样。 – Jeon