web-dev-qa-db-ja.com

urllib2.urlopenを使用するときに最終的なリダイレクトURLを取得するにはどうすればよいですか?

urllib2.urlopenメソッドを使用してURLを開き、Webページのマークアップを取得しています。これらのサイトのいくつかは、301/302リダイレクトを使用して私をリダイレクトします。リダイレクトされた最終的なURLを知りたいのですが。どうすればこれを入手できますか?

20

返されたファイルオブジェクトの.geturl()メソッドを呼び出します。 _urllib2_ docs によると:

geturl() —取得したリソースのURLを返します。これは、リダイレクトが実行されたかどうかを判断するために一般的に使用されます。

例:

_import urllib2
response = urllib2.urlopen('http://tinyurl.com/5b2su2')
response.geturl() # 'http://stackoverflow.com/'_
34
Mark

_urllib2.urlopen_の戻り値にはgeturl()メソッドがあり、実際の(つまり最後のリダイレクト)URLを返す必要があります。

4
Michael

例:urllib2.urlopen('ORIGINAL LINK').geturl()

urllib2.urlopen(urllib2.Request('ORIGINAL LINK')).geturl()

1
kevin