2010-07-22 38 views
1

我使用谷歌應用程序引擎的抓取供稿網址鑽幾個網址是301重定向我想返回我如何得到最終的重定向URL

我正在usign通用料的結果最終網址讀者解析的網址有任何方式或任何功能,可以給我最終的網址。

回答

3

這是不可能通過分析得到「最終」 URL,爲了解決這個問題,你將需要至少執行HTTP HEAD操作

+0

+1提及使用'HEAD' – 2010-07-22 14:21:11

0

您可以通過處理做到這一點手動重定向。當調用提取時,通過follow_redirects=False。如果您的響應對象的HTTP狀態是重定向代碼(301或302),請獲取Location響應標頭並再次獲取,直到HTTP狀態爲其他。添加完整性檢查(可能最多5個重定向)以避免重定向循環。

3

如果您使用的urlfetch API,你可以訪問你urlfetch.fetch()得到response objectfinal_url屬性,假設你設置follow_redirectsTrue

>>> from google.appengine.api import urlfetch 
>>> url_that_redirects = 'http://www.example.com/redirect/' 
>>> resp = urlfetch.fetch(url=url_that_redirects, follow_redirects=False) 
>>> resp.status_code 
302 # or 301 or whatever 
>>> resp = urlfetch.fetch(url=url_that_redirects, follow_redirects=True) 
>>> resp.status_code 
200 
>>> resp.final_url 
'http://www.example.com/final_url/' 

注意,follow_redirects關鍵字參數默認爲True ,所以你不必明確地設置它。

相關問題