Python - 处理传递到重定向处理程序的损坏 URL



我有一个包含几千个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 - 因此您可能希望过滤掉它们,或者在列表组合中忽略它们。

最新更新