1
我正在尋找unhorten(解決)在python中的網址,當最終的網址是https。我看到了這個問題:How can I un-shorten a URL using python?(以及類似的其他人),但正如在接受的答案的評論中指出的那樣,這個解決方案只在urls沒有被重定向到https時纔有效。如何使用python取消縮短(解析)url,當最終url爲https時?
作爲參考,在這個問題的代碼(重定向到HTTP URL時的正常工作)是:
# This is for Py2k. For Py3k, use http.client and urllib.parse instead, and
# use // instead of/for the division
import httplib
import urlparse
def unshorten_url(url):
parsed = urlparse.urlparse(url)
h = httplib.HTTPConnection(parsed.netloc)
resource = parsed.path
if parsed.query != "":
resource += "?" + parsed.query
h.request('HEAD', resource)
response = h.getresponse()
if response.status/100 == 3 and response.getheader('Location'):
return unshorten_url(response.getheader('Location')) # changed to process chains of short urls
else:
return url
(注意 - 由於顯而易見的帶寬的原因,我期待通過只是要求文件來實現標頭的[即如僅HTTP以上版本],而不是通過詢問整個頁面的內容)
感謝 - 必須在請求中添加選項「verify = False」,因爲每當在不同的https域之間重定向時都會發生ssl錯誤。 (瞭解不驗證SSL證書的危險) – kyrenia 2015-04-03 20:06:50