Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 20, 2017 16:53:42

midinjer
Зарегистрирован: 2017-11-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека request. Получить конечный url.

Такая ситуация: отправляю get запрос на сайт через request. В результате меня либо оставляет на исходной странице, либо переадресовывает на одну из двух других ( т.е. после запроса я оказываюсь на одной из трех страниц ). Так вот как узнать, на какой именно я странице?
Через

 page.history
могу узнать, перекинуло меня куда-то или нет. А можно ли конкретный url получить? Заранее спасибо )

Офлайн

#2 Ноя. 21, 2017 01:50:20

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Библиотека request. Получить конечный url.

Можно жить догадками или же можно просто почитать гайд, получить ответ от сервера и продолжить писать код.

 page.url
по-моему быстрее проверить самому, чем в вашем случае создавать тему и ждать пока на нее ответят.

если вас редиректит, значит это правило не просто так создали(исключения конечно же бывают - криво настроенные сервера)

 import requests
r = requests.get('http://github.com')
print(r.status_code, r.url, r.history)
r = requests.get('http://github.com', allow_redirects=False)
print(r.status_code, r.url, r.history, r.headers)

 200 https://github.com/ [<Response [301]>]
301 http://github.com/ [] {'Content-length': '0', 'Location': 'https://github.com/'}

Из ответа сервера становится понятно, что редиректят с http на https, почему это происходит в вашем случае, нужно прочитать еще раз первую строку этого сообщения.

Отредактировано papuas (Ноя. 21, 2017 03:51:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version