Python - HTTPRedirectHandler并不总是获得重定向

时间:2014-06-19 13:44:50

标签: python urllib2

我正在使用urllib2的HttpRedirecthandler来获取网址的重定向。代码如下所示:

import urllib2, cookielib

class HTTPRedirectHandler(urllib2.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        newreq = urllib2.HTTPRedirectHandler.redirect_request(self,
            req, fp, code, msg, headers, newurl)
        if newreq is not None:
            self.redirections.append(newreq.get_full_url())
        return newreq



def getListOfRedirectUrls(adUrl):
    urlList = []

    h = HTTPRedirectHandler()
    h.max_redirections = 100
    h.redirections = [adUrl]

    opener = urllib2.build_opener(h)
    response = opener.open(adUrl)

    for redirect in h.redirections:
        urlList.append(redirect)

    return urlList

这适用于大多数网址。但是,它不时只给我和第一个网址,而不是最终页面(或其间的任何一个)。例如,广告链接:

'http://trc.taboola.com/wtffunfact/log/3/click?pi=/&ri=4c376c94a4413aaace150a3cd2b9d902&sd=v2_b935da3ff37d8b8efc9f1aeaf46df13b_3932b8b5d26526ed68d78d4ca0b1c52d_1403183649_1403183649_CN6AAQ&ui=3932b8b5d26526ed68d78d4ca0b1c52d&it=video&ii=~~V1~~-2280573428682392386~~Uno41aIn9FS4V6KLu4hReNH33hC7jIMtL3ZKEwlHBjLt20WtOFlYyBFp19r7BzDGoDxni1tDH9vJwwB-9GbnkA&pt=home&li=rbox-h2v&redir=http://livingwelltrends.com/3/?src=tabn&query=ad3&net=desktop&ad=food7&utm_source=taboola&utm_medium=referral&utm_content=wtffunfact&p=jmedia-sc&vi=1403183649792&r=2'

只返回该网址,但是当我在浏览器中粘贴网址时,它会将我发送到另一个网页。如何以编程方式获取最终页面?我尝试使用urlopen

var = urllib2.urlopen(url)

print var.geturl()

但这也不会给出最终的目标网页。重定向处理程序适用于大多数URL,所以我不知道那些没有的问题是什么。有人有任何想法吗?

0 个答案:

没有答案