1

我有一个包含几千个 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

但是,有时程序会遇到“找不到页面”或完全空白的页面,这会导致程序失败。是否有解决方案通过擦除或在程序接近时绕过它们来处理这些断开的链接?祝大家欢呼。提前致谢。

4

1 回答 1

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在发生异常的情况下使用上述返回 - 因此您可能希望将它们过滤掉,或者在您的列表组合中忽略它们。

于 2013-10-11T18:22:15.880 回答