Frage

Das Produkt, an dem ich arbeite, läuft über Google App Engine. Es enthält einen ähnlichen Code wie:

    result = urlfetch.fetch(url, **parms)
    log('%s' %result.final_url)

Dies gibt immer keine zurück. In der Dokumentation heißt es, dass die richtige URL zurückgegeben wird. Aber das scheint ein Problem zu sein. Ich kann die gegebene URL nicht verwenden, da dazwischen viele 302 stattfinden.

Weiß jemand, wie man dasselbe löst?

War es hilfreich?

Lösung

Tests auf Shell.appspot.com zeigt, dass Final_url in IF gefüllt ist, wenn eine Umleitung befolgt wurde und leer bleibt, wenn es nicht war:

>>> from google.appengine.api import urlfetch
>>> urlfetch.fetch('http://google.com/').final_url
'http://www.google.com/'
>>> urlfetch.fetch('http://www.google.com/').final_url

Um die endgültige URL zu bekommen, tun Sie einfach Folgendes:

result = urlfetch.fetch(url, **parms)
final_url = result.final_url or url
log('%s' % final_url)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top