Вопрос

Продукт, над которым я работаю, работает над двигателем Google App. Он содержит код, аналогичный этому:

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

Это всегда не возвращает ни одного. В документации говорится, что вернет правильный URL. Но это кажется проблемой. Я не могу использовать заданный URL, так как между ними происходит много 302.

Кто -нибудь знает, как решить то же самое?

Это было полезно?

Решение

Тестирование на Shell.appspot.com Демонстрирует, что final_url заполняется в IFF, был следовал перенаправление, и остается пустым, если это не так:

>>> 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

Итак, чтобы получить последний URL, просто сделайте это:

result = urlfetch.fetch(url, **parms)
final_url = result.final_url or url
log('%s' % final_url)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top