2013-06-12 56 views
4

的順序返回最後URL我有時需要與提供如此美麗的湯和請求的URL解析:在重定向

http://bit.ly/sdflksdfwefwe

http://stup.id/sdfslkjsfsd

http://0.r.msn.com/sdflksdflsdj

當然,這些網址通常會「解析」爲規範網址,如http://real-website.com/page.html。如何獲取分辨率/重定向鏈中的最後一個URL?

我的代碼通常是這樣的:

from bs4 import BeautifulSoup 
import requests 

response = requests.get(url) 
soup = bs4.BeautifulSoup(response.text, from_encoding=response.encoding) 
canonical_url = response.??? ## This is what I need to know 

請注意,我不是說要查詢http://bit.ly/bllsht,看看它去,而是當我用美麗的湯已經解析它返回的頁面,至獲得重定向鏈中最後一個的規範URL。

謝謝。

回答

6

它在response對象的url屬性中。

>>> response = requests.get('http://bit.ly/bllsht') 
>>> response.url 
    > u'http://www.thenews.org/sports/well-hey-there-murray-state-1-21-11-1.2436937' 

你可以很容易地找到在「Quick Start」 page此信息。

+0

令人難以置信的簡單!謝謝! – dotancohen

+2

感謝您使用鏈接進行編輯。在我看來,'url'屬性是'get()'方法中指定的URL。 – dotancohen

+0

你知道如何爲urllib2做同樣的事嗎? – Pythoner1234