這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