Webページの存在をテストするスクリプトを作成しようとしています。ページ全体をダウンロードせずにチェックできると便利です。
これは私の出発点です。複数の例で同じようにhttplibを使用しているのを見てきましたが、チェックするすべてのサイトは単にfalseを返します。
import httplib
from httplib import HTTP
from urlparse import urlparse
def checkUrl(url):
p = urlparse(url)
h = HTTP(p[1])
h.putrequest('HEAD', p[2])
h.endheaders()
return h.getreply()[0] == httplib.OK
if __name__=="__main__":
print checkUrl("http://www.stackoverflow.com") # True
print checkUrl("http://stackoverflow.com/notarealpage.html") # False
何か案は?
編集
誰かがこれを提案しましたが、彼らの投稿は削除されました.. urllib2はページ全体のダウンロードを回避しますか?
import urllib2
try:
urllib2.urlopen(some_url)
return True
except urllib2.URLError:
return False