2011-10-27 8 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() 

ので、私はユーザーエージェントを設定しそれはすべての罰金

に動作します。しかし、私はモバイル版が欲しい:

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に設定されているユーザエージェントを使用していますが、私のiPhoneのサイトにアクセスしたときに発生しない不定の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