私は管理している大量の記事の品質を保証するために、Python 3.4を使用して壊れたリンクチェッカーを構築しています。最初は私はGETリクエストを使ってリンクが実行可能かどうかを確認していましたが、私がチェックしているURLにpingを出すときにできるだけうまくしようとしていましたので、もっとうまくいっているとしてテストされているURLをチェックしませんかつて私は頭の要求をするように試みました。壊れたリンクチェッカーがヘッドリクエストに失敗する
しかし、これを単純に停止させるサイトが見つかりました。これはどちらもエラーをスローし、また開きます
https://www.icann.org/resources/pages/policy-2012-03-07-en
リンク自体は完全に機能しています。理想的には、同様のリンクを処理する方法を探したいと思います。それがエラーをスローしませんので、私は本当に全体チェッカーを停止し、リンクにそれを絞り込む超え、さらにこれを解決する方法を知らない、
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)
:Pythonの3.4でこのコードは、問題を再現します。このリンクが有効かどうかをどうやって確認できますか?
あなたは壊れたリンクとして何を定義しますか?エラー404? –
404,502,504,403、タイムアウトエラー...基本的に200以上のレスポンスコード。ブラウザーでアクセスするとページがロードされることがわかったら、それだけでいいです。リンクが他の方法で正しいことを理解することは期待できません。 –
'https:// www.icann.org /'へのリクエストがハングアップするように見える... strange –