嗨我試圖從這個URL(http://www.sicom.gov.co/precios/controller?accion=ExportToExcel)下載一個excel文件,然後我需要使用xlrd來解析它。無法使用urllib2下載整個文件
問題是,當我把Url放到瀏覽器上時,我得到的是一個大概2MB的excel文件,但是當我使用urllib2,http2lib下載文件或者從命令行卷曲時,我只能得到一個4k文件,很明顯,解析不完整的文件失敗了。
奇怪的是,xlrd似乎能夠從下載的文件中讀取正確的表名,所以我猜這個文件是正確的,但它顯然是不完整的。
這裏是我想要達到
import urllib2
from xlrd import open_workbook
excel_url = 'http://www.sicom.gov.co/precios/controller?accion=ExportToExcel'
result = urllib2.urlopen(excel_url)
wb = open_workbook(file_contents=result.read())
response = ""
for s in wb.sheets():
response += 'Sheet:' + s.name + '<br>'
for row in range(s.nrows):
values = []
for col in range(s.ncols):
value = s.cell(row, col).value
if (value):
values.append(str(value) + " not empty")
else:
values.append("Value at " + col + ", " + row + " was empty")
response += str(values) + "<br>"
如果我將該鏈接粘貼到我的瀏覽器中,我只會得到一個名爲'controller'的文件,它是4.1KB。 – jramirez
@jucas你可能在這臺服務器上有一個會話,它向你發送一個不同於我們的文件。 – 2013-11-14 19:56:33
您可能必須登錄網站才能訪問該文件嗎?這就是爲什麼你無法從你的腳本中獲取它的原因。 – jramirez