2014-09-19 66 views
0

我正在嘗試做一個簡單的任務,但我對Python很陌生,所以將不勝感激一些幫助。我有這樣一段代碼找到Python的404錯誤:爲了找到404錯誤導入一個csv與一長串的網址爲了找到404錯誤

import requests 

try: 
    r = requests.head("http://stackoverflow.com") 
    print r.status_code 

except requests.ConnectionError: 
    print "failed to connect" 

這一點我在計算器尋找解決方案(感謝用戶Goumeau)獲得。我有一個csv的數千個URL,我想導入,然後運行這個代碼。我最終尋找的是包含與每個url關聯的url和http狀態代碼的列表。問題是如何導入我的URL列表,然後以迭代方式運行上面的代碼?

如果我很幸運,那麼我將如何獲得答案列表?

感謝您的閱讀。

+1

什麼是csv的結構?每行一個url?或多個。請顯示csv文件的示例。 – b10n 2014-09-19 00:23:17

+0

hey there,yeah沒錯:csv是每行一個網址(垂直說...'列'A包含1000個網址)。希望是有道理的。謝謝。 – newbie68 2014-09-19 01:08:49

回答

1

我假設一個url的文件,每行一個。

def get_url_status(url): 
    try: 
     r = requests.head(url) 
     return url, r.status_code 
    except requests.ConnectionError: 
     print "failed to connect" 
     return url, 'error' 

results = {} 
with open('url.csv', 'rb') as infile: 
    for url in infile: 
     url_status = get_url_status(url) 
     results[url_status[0]] = url_status[1] 
+0

嘿,我試過使用這段代碼,但是我在下面看到這個錯誤。我的csv包含幾個測試網址:文件「/Library/Python/2.7/site-packages/requests/models.py」,行345,在prepare_url 「也許你的意思是http:// {0}?」.format (url)) requests.exceptions.MissingSchema:無效的URL u'google.com \ rstackoverflow.com':沒有提供模式。 Pstackoverflow.com?ttp://google.com – newbie68 2014-09-19 18:18:04

+0

它試圖解析該行時拋出了什麼樣的異常?也許處理這種異常類型,程序應該繼續。 – b10n 2014-09-19 18:25:37

+0

經過多次其他嘗試後,我收到'無法連接'錯誤。對不起,任何建議,你可以給予非常感謝,謝謝。 – newbie68 2014-09-19 18:35:59