我有一个包含几千个URL的文本文件,我正在尝试从中获取所有重定向的URL。 到目前为止,我已经实现了获取重定向 URL 的能力,只要原始 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
但是,有时程序会遇到"找不到页面"或完全空白的页面,从而导致程序失败。 有没有办法通过在程序接近时擦除或简单地绕过它们来处理这些断开的链接? 大家干杯。提前谢谢。
修改函数以处理异常:
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
- 因此您可能希望过滤掉它们,或者在列表组合中忽略它们。