私がこのURLのリストを与えていたとしましょう:
website.com/thispage
website.com/thatpage
website.com/thispageagain
website.com/thatpageagain
website.com/morepages
...おそらく1kのURLを超えている可能性があります。
このリストをループして、ページが開いているかどうかを確認するための最良/最も簡単な方法は何ですか?
私がこのURLのリストを与えていたとしましょう:
website.com/thispage
website.com/thatpage
website.com/thispageagain
website.com/thatpageagain
website.com/morepages
...おそらく1kのURLを超えている可能性があります。
このリストをループして、ページが開いているかどうかを確認するための最良/最も簡単な方法は何ですか?
それぞれに対してHEADリクエストを実行します。
このライブラリを使用します:http://docs.python-requests.org/en/latest/user/quickstart/#make-a-request
requests.head('http://httpbin.org/get').status_code
これがPythonの例です
import httplib2
h = httplib2.Http()
listUrls = ['http://www.google.com','http://www.xkcd.com','http://somebadurl.com']
count = 0
for each in listUrls:
try:
response, content = h.request(listUrls[count])
if response.status==200:
print "UP"
except httplib2.ServerNotFoundError:
print "DOWN"
count = count + 1
PythonでHEADリクエストを実行する方法を示すSOの回答があります。
スレッドのプールを開き、それぞれのURLを開き、200または404を待ちます。すすぎ、繰り返します。