Python 如何检查URL列表是否存在
我正在尝试测试是否存在一个简单的url列表,当我只测试一个url时,代码会工作,但是当我尝试添加一个url数组时,代码会中断 知道我做错了什么吗 单个URL代码Python 如何检查URL列表是否存在,python,Python,我正在尝试测试是否存在一个简单的url列表,当我只测试一个url时,代码会工作,但是当我尝试添加一个url数组时,代码会中断 知道我做错了什么吗 单个URL代码 import httplib c = httplib.HTTPConnection('www.example.com') c.request("HEAD", '') if c.getresponse().status == 200: print('web site exists') import httplib Urls = [
import httplib
c = httplib.HTTPConnection('www.example.com')
c.request("HEAD", '')
if c.getresponse().status == 200:
print('web site exists')
import httplib
Urls = ['www.google.ie', 'www.msn.com', 'www.fakeniallweb.com', 'www.wikipedia.org', 'www.galwaydxc.com', 'www.foxnews.com', 'www.blizzard.com', 'www.youtube.com']
for x in Urls:
c = httplib.HTTPConnection(x)
c.request("HEAD", '')
if c.getresponse().status == 200:
print('web site exists')
else:
print('web site' + x + 'un-reachable')
#To prevent code from closing
input ()
断开的数组代码
import httplib
c = httplib.HTTPConnection('www.example.com')
c.request("HEAD", '')
if c.getresponse().status == 200:
print('web site exists')
import httplib
Urls = ['www.google.ie', 'www.msn.com', 'www.fakeniallweb.com', 'www.wikipedia.org', 'www.galwaydxc.com', 'www.foxnews.com', 'www.blizzard.com', 'www.youtube.com']
for x in Urls:
c = httplib.HTTPConnection(x)
c.request("HEAD", '')
if c.getresponse().status == 200:
print('web site exists')
else:
print('web site' + x + 'un-reachable')
#To prevent code from closing
input ()
问题不在于你把它当作一个数组,而是你的一个URL(www.fakeniallweb.com)与你的其他URL有不同的问题 我认为,因为DNS无法解析,所以您不能像您那样请求头部。因此,除了检查响应代码200之外,您还需要额外的检查 也许你可以这样做:
try:
c.request("HEAD", '')
if c.getresponse().status == 200:
print('web site exists')
else:
print('website does not exist')
except gaierror as e:
print('Error resolving DNS')
老实说,我怀疑你会发现其他情况下,一个网站返回不同的状态代码。例如,网站可能会返回3xx范围内的内容进行重定向,如果无法访问,则返回403。这并不意味着该网站不存在
希望这有助于您的方式 德雷德干酒店
感谢您的帮助,这是一个未解决的dns错误导致它崩溃
我最后
解决方案
import socket
Urls = ['www.google.ie', 'www.msn.com', 'www.fakeniallweb.com', 'www.wikipedia.org', 'www.galwaydxc.com', 'www.foxnews.com', 'www.blizzard.com', 'www.youtube.com']
for x in Urls:
try:
url = socket.gethostbyname(x)
print x + ' was reachable '
except socket.gaierror, err:
print "cannot resolve hostname: ", x, err
#To prevent code from closing
input ()
谢谢您的帮助。您遇到了什么错误?另外,最好在中使用真实的变量名,以示对他人的礼貌。