我正在尝试测试整个网站列表,看看网址是否有效,我想知道哪些网址没有。
import urllib2
filename=open(argfile,'r')
f=filename.readlines()
filename.close()
def urlcheck() :
for line in f:
try:
urllib2.urlopen()
print "SITE IS FUNCTIONAL"
except urllib2.HTTPError, e:
print(e.code)
except urllib2.URLError, e:
print(e.args)
urlcheck()
答案 0 :(得分:1)
你必须传递网址
def urlcheck() :
for line in f:
try:
urllib2.urlopen(line)
print line, "SITE IS FUNCTIONAL"
except urllib2.HTTPError, e:
print line, "SITE IS NOT FUNCTIONAL"
print(e.code)
except urllib2.URLError, e:
print line, "SITE IS NOT FUNCTIONAL"
print(e.args)
except Exception,e:
print line, "Invalid URL"
需要考虑的一些边缘案例或事项
错误代码和HTTPError
的一点点来自服务器的每个HTTP响应都包含一个数字“状态代码”。 有时状态代码表示服务器无法执行 满足要求。默认处理程序将处理其中一些 回复(例如,如果响应是“重定向”) 请求客户端从其他URL获取文档, urllib2将为你处理)。对于那些无法处理的人,请记住 会引发HTTPError。典型错误包括'404'(页面不是 发现),'403'(请求禁止)和'401'(身份验证 必需的)。
即使引发了HTTPError,您也可以检查错误代码
403
,401
等的HTTPError。 5xx
ServerErrors
答案 1 :(得分:0)
我建议您使用if($(document).scrollTop() >= 3 && mustSlideRight) {
}else if ($(document).scrollTop() <=2 && mustSlideLeft){}
库。
requests
答案 2 :(得分:0)
您必须将url作为参数传递给urlopen函数。
import urllib2
filename=open(argfile,'r')
f=filename.readlines()
filename.close()
def urlcheck() :
for line in f:
try:
urllib2.urlopen(line) # careful here
print "SITE IS FUNCTIONAL"
except urllib2.HTTPError, e:
print(e.code)
except urllib2.URLError, e:
print(e.args)
urlcheck()
答案 3 :(得分:0)
{{1}}
答案 4 :(得分:0)
我可能会这样写:
import urllib2
with open('urls.txt') as f:
urls = [url.strip() for url in f.readlines()]
def urlcheck() :
for url in urls:
try:
urllib2.urlopen(url)
except (ValueError, urllib2.URLError) as e:
print('invalid url: {}'.format(url))
urlcheck()
OP对原始实施的一些改变:
示例输出:
$ python urlcheck.py
invalid url: http://www.google.com/wertbh
invalid url: htp:/google.com
invalid url: google.com
invalid url: https://wwwbad-domain-zzzz.com