Wie kann eine URL mit Python gekürzt (aufgelöst) werden, wenn die endgültige URL https lautet?
Ich freue mich darauf, eine URL in Python abzukürzen (aufzulösen), wenn die endgültigen URLs https sind. Ich habe die Frage gesehen:Wie kann ich eine URL mit Python abkürzen? (sowie ähnliche andere) Wie jedoch im Kommentar zur akzeptierten Antwort angegeben, funktioniert diese Lösung nur, wenn die URL nicht zu https umgeleitet wird.
Zur Referenz ist der Code in dieser Frage (der beim Umleiten zu http-URLs gut funktioniert):
# 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
(Anmerkung - aus offensichtlichen Bandbreitengründen möchte ich erreichen, indem ich nur nach den Dateikopfzeilen frage (d. h. wie bei der oben genannten Nur-http-Version) und nicht nach dem Inhalt der gesamten Seiten.)