0
我正在使用Python 3.4構建一個斷開的鏈接檢查器,以幫助確保我管理的大量文章的質量。最初,我使用GET請求來檢查鏈接是否可行,但是我試圖在ping我檢查的URL時儘可能地好,所以我都確保我不檢查被測試爲更有效的URL比一次,我已經試圖做正題。Broken Link Checker失敗Head Request
但是,我發現一個網站,導致這只是停止。它既不拋出一個錯誤,也沒有打開:
https://www.icann.org/resources/pages/policy-2012-03-07-en
鏈接本身是功能齊全。所以理想情況下,我想找到一種處理類似鏈接的方法。此代碼在Python 3.4將重現該問題:
import urllib
import urllib.request
URL = 'https://www.icann.org/resources/pages/policy-2012-03-07-en'
req=urllib.request.Request(URL, None, {'User-Agent': 'Mozilla/5.0 (X11; Linux i686; G518Rco3Yp0uLV40Lcc9hAzC1BOROTJADjicLjOmlr4=) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3','Accept-Encoding': 'gzip, deflate, sdch','Accept-Language': 'en-US,en;q=0.8','Connection': 'keep-alive'}, method='HEAD')>>> from http.cookiejar import CookieJar
cj = CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
response = opener.open(req)
,因爲它不拋出一個錯誤,我真的不知道如何進一步解決此超出縮小下來到停止整個檢查程序的鏈接。我如何檢查這個鏈接是否有效?
你認爲什麼是斷鏈?錯誤404? –
404,502,504,403,超時錯誤...基本上任何響應代碼都超過200.如果我可以確定如果在瀏覽器中訪問頁面,將會加載頁面,這就是我需要的。我不能指望它以任何其他方式理解鏈接是正確的。 –
如果有幫助,任何對「https:// www.icann.org /」的請求都會掛起......奇怪的 –