2013-04-03 139 views
3

我正在開發一個下載管理器。使用python中的requests模塊來檢查一個有效的鏈接(希望破解的鏈接)。 我對下面的檢查鏈接代碼:現在python請求很慢

url='http://pyscripter.googlecode.com/files/PyScripter-v2.5.3-Setup.exe' 
    r = requests.get(url,allow_redirects=False) #this line takes 40 seconds 
    if r.status_code==200: 
     print "link valid" 
    else: 
     print "link invalid" 

,問題是這需要大約40秒鐘,進行這種檢查,這是巨大的。 我的問題是我怎麼能加快這可能使用urllib2或東西?

注意:另外,如果我將url替換爲「http://pyscripter.googlecode.com/files/PyScripter-v2.5.3-Setup.exe」的實際URL,則需要一秒鐘的時間,因此這似乎是請求的問題。

回答

11

並非所有的主機支持head請求。您可以使用此代替:

r = requests.get(url, stream=True) 

這實際上只下載標題,而不是響應內容。而且,如果想法是在之後獲取文件,則不必再提出其他請求。

查看here瞭解更多信息。

+0

嘿謝謝doukremt ...事實上,它顯示404即使在某些情況下該項目在那裏......謝謝! – scandalous

8

不要使用get實際檢索文件,使用:

r = requests.head(url,allow_redirects=False) 

從6.9secs我的機器上進入0.4secs

+0

謝謝你jon。確實有些服務器不支持它.. – scandalous