[英]DeadLink exception from Python2 to Python3
我发现用Python 2.7编写的这段代码在读取网址列表并检索其内容时绕过了死链接:
for i in xrange(lines):
try:
t = urllib2.urlopen(urllib2.Request(lines[i]))
deadlinkfound = False
except:
deadlinkfound = True
if not(deadlinkfound):
urllib.urlretrieve(lines[i], "Images/imag" + "-%s" % i)
它在Python2中工作正常,但由于urllib2合并,所以在Python3中找不到等效项。
您可以在此处使用urllib.request
进行完全相同的操作。 不要捕获所有可能的异常,仅捕获合理地将要抛出的异常:
from urllib import request, error
from http.client import HTTPException
for i, url in enumerate(lines):
try:
t = request.urlopen(request.Request(url, method='HEAD'))
except (HTTPException, error.HTTPError):
continue
request.urlretrieve(url, 'Images/imag-{}'.format(i))
此代码执行相同的操作,但效率更高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.