python - 如何在python中使用urllib2捕获重定向的url

标签 python url redirect urllib2 httplib

我正在使用 urllib2 模块来读取 html 页面,下面是我的代码

代码.py

import urllib2, httplib

httplib.HTTPConnection.debuglevel = 1  
request = urllib2.Request("http://www.vodafone.in/Pages/tuesdayoffers_che.aspx")
opener = urllib2.build_opener()
f = opener.open(request)
print f.url

结果

'http://www.vodafone.in/pages/tuesdayoffers_che.aspx?cid=che'

当我在浏览器中给出上述网址时,它被重定向到http://www.vodafone.in/pages/home_che.aspx?cid=che,但从上面的代码我我得到相同的给定网址

最后如何使用 urrlib2 捕获重定向的 url 并从中读取数据,因为 我有许多网址将被重定向到其他一些网址,最后我的意图是捕获重定向的网址并从捕获的网址读取数据,那么如何使用 urllib2 和 httplib 在 python 中实现此目的>

最佳答案

正则表达式不是必需的。该网站正在通过 JavaScript 进行重定向,但是仍然返回 302 状态代码。您可以通过以下方式验证这一点:

url = 'http://www.vodafone.in/Pages/tuesdayoffers_che.aspx'
file_pointer = urllib2.urlopen(url)
print file_pointer.getcode()

当返回 302 状态码时,响应 header 中有一个 Location header 。您可以通过以下方式查看:

url = 'http://www.vodafone.in/Pages/tuesdayoffers_che.aspx'
file_pointer = urllib2.urlopen(url)
print file_pointer.info()

记录位置 url。这将是您被重定向到的页面。

关于python - 如何在python中使用urllib2捕获重定向的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153132/

相关文章:

python - 我可以使用 python 中的 coerce() 函数添加两个元组以形成一个新元组吗?

python - 如何使用 `daringfireball` 的正则表达式 re.findall() ?

jquery - 如何用jquery替换 anchor 链接的参数?

python - 是否有针对所需属性 (OOP) 的 "pythonic"方法?

python - 如何使用 Pandas 从 DataFrame 或 np.array 中的列条目创建字典

python - 使用 SI 比例因子对数字进行排序

Internet Explorer 浏览器版本用户代理的 Javascript 重定向?

symfony - 如何在 Symfony 路由中使用 anchor ?

java - 如何让 HA Proxy 自己跟随重定向?

javascript - 如何使用 JavaScript 重定向?