Urllib2移动用户

时间:2011-10-27 16:12:08

标签: python urllib2

如果我使用Urllib2打开网址:

import urllib
import urllib2

url = 'http://www.bbc.co.uk'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {}
headers = { 'User-Agent' : user_agent }

data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()

一切正常

但我想要移动版本,所以我将用户代理设置为:

user_agent = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5'

当我进入测试页并阅读其标题

时,我的iphone回来了

但是,如果我运行上面的代码并将用户代理设置为此urllib,并且似乎遵循无限期302重定向循环,当我访问iphone上的网站时不会发生这种情况。

urllib2返回了一大堆调试信息,显示它跟随了很多302,最后是:

urllib2.HTTPError: HTTP Error 301: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
Moved Permanently

任何想法都会被感激不尽。

1 个答案:

答案 0 :(得分:1)

您的问题是重定向请求的回复。

尝试使用此lib来帮助您处理重定向网址:

http://pypi.python.org/pypi/requests/0.7.3 要么 http://wwwsearch.sourceforge.net/mechanize/