2011-10-24 29 views
2

我嘗試使用urllib來抓取這個文件:http://www.anzhi.com/dl_app.php?s=68611,但總是下載一個錯誤的文件(尺寸較小)。但是,如果我在chrome上打開此鏈接,它會很好,下載的文件大小是正確的。代碼被附上,有什麼問題?如何抓取'這個'網址使用urllib?

import urllib 

apk = "http://sc.hiapk.com/Download.aspx?aid=294091" 
local=r'x.apk' 

webFile = urllib.urlopen(apk) 

localFile = open(local, "w") 
realurl = webFile.geturl() 
print realurl 
realFile = urllib.urlopen(realurl) 
localFile.write(realFile.read()) 
webFile.close() 
realFile.close() 
localFile.close() 

回答

2

你在什麼操作系統上?這行代碼:

localFile = open(local, "w") 

在Windows上打開一個文本模式文件,它將執行您不想要的操作。是否將其改爲

localFile = open(local, "wb") 

(以二進制模式打開文件)使事情正常工作?

+0

謝謝,但我在mac – chenyukun

+0

這應該是一個評論,而不是一個答案。 – Johnsyweb

+0

@Johnsyweb:相反,它包含一個可行的建議,可以解決OP的問題。它不是「不是答案」,只是因爲它以問號結尾。 –

1

您在代碼中使用的是與問題中相同的URL。使用anzhi.com網址,你會得到你想要的文件。 :)