我有一个包含几千个网址的文本文件,我试图从中获取所有重定向的网址。到目前为止,只要原始网址没有重定向到死角或断开链接,我就能够获得重定向的URL:
def get_redirect_url(url):
opener = urllib2.build_opener(urllib2.HTTPRedirectHandler)
request = opener.open(url)
return request.url
with open ('textFile.txt', 'r') as myFile:
urls = [line.strip() for line in myFile]
redirect_urls = [get_redirect_url(url) for url in urls]
print redirect_urls
但是,程序偶尔会遇到“找不到页面”或完全空白页面导致程序失败。是否存在通过擦除或在程序接近时简单地绕过它们来处理这些断开的链接的解决方案?干杯全都。提前谢谢。
答案 0 :(得分:2)
修改你的函数以处理异常:
def get_redirect_url(url):
opener = urllib2.build_opener(urllib2.HTTPRedirectHandler)
try:
request = opener.open(url)
return request.url
except urllib2.HTTPError as e:
pass # or do something
如果发生异常,您将使用上述内容返回None
- 因此您可能希望过滤掉这些内容,或者在列表中忽略它们。