我有一个已存储超过一年的网址列表(1000+)。我想彻底验证它们以确定它们是否仍然存在。什么是最好/最快的方法来检查它们并返回一个没有返回网站的列表?
答案 0 :(得分:11)
这有点慢,但你可以使用这样的东西来检查url是否是实时的
import urllib2
try:
urllib2.urlopen(url)
return True # URL Exist
except ValueError, ex:
return False # URL not well formatted
except urllib2.URLError, ex:
return False # URL don't seem to be alive
比urllib2更快,您可以使用httplib
import httplib
try:
a = httplib.HTTPConnection('google.com')
a.connect()
except httplib.HTTPException as ex:
print "not connected"
你也可以进行DNS结账(检查网站是否不存在不是很方便):
import socket
try:
socket.gethostbyname('www.google.com')
except socket.gaierror as ex:
print "not existe"
答案 1 :(得分:0)
检查一下:
那么结束:
import ping, socket
try:
result = ping.do_one('http://stackoverflow.com/', timeout=2)
except socket.error, e:
# url cannot be reached
print "Error:", e