2011-10-27 7 views
0

나는이 사용하여 URL을 열고 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() 

그것은 모두가 잘

작동하지만 너무 모바일 버전을 원하는 I가 사용자 에이전트를 설정합니다

을 내 아이폰 다시 테스트 페이지로 이동 제가 실행하지만 경우의 헤더

을 읽을 때와 오는 것입니다

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' 

위의 코드는 위의 urllib에 설정되어있는 사용자 에이전트가 괴롭혀서 내 아이폰으로 사이트를 방문 할 때 발생하지 않는 무한 302 리디렉션 루프를 따르는 것으로 보입니다.

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

귀하의 문제는 귀하의 요청에 따라 리디렉션됩니다.

리디렉션 URL을 처리하는 데 도움이 LIB을 시도해보십시오 요청과

http://pypi.python.org/pypi/requests/0.7.3 또는 http://wwwsearch.sourceforge.net/mechanize/

+0

초기 테스트가 좋은 결과를 보여줍니다. 몇 주 전에 나는 이것을 알았 으면 좋겠다. - 내일은 내가 원하는대로 할 수 있는지 알게 될거야. 고맙습니다. – dan360

+0

요청이 완벽합니다 - 감사합니다! – dan360

관련 문제