Python запросов дает 200 ответ, а FireFox получает перенаправление - PullRequest
0 голосов
/ 02 апреля 2020

Очень простая проблема. Когда я go на мой веб-сайт в любом браузере, он перенаправляет. Когда я делаю requests.get(my_url) с точно таким же URL-адресом и протоколом, я получаю ответ 200. Почему? Не имеет значения, если я установил allow_redirects в True или False, я все равно получаю то же самое поведение. Я попытался установить заголовок, чтобы запросы выдавали Firefox, я все еще получаю то же поведение.

Как я могу получить request.get, чтобы дать мне перенаправление, которое браузер получает по тому же URL?

#!/usr/bin/env/python

import requests

result = requests.get("https://bgjkfgbjfgghbjdfbhdgfjkh.fake")

print(result.status_code)

Вышеуказанные отпечатки "200".

1 Ответ

0 голосов
/ 02 апреля 2020

из всех ваших комментариев, похоже, что статус 200 не означает, что конечная страница была выбрана правильно (вы говорите, что response.text совершенно отличается в обоих случаях - т.е. это не ожидаемая конечная страница).

В этом случае, либо:

  • Вы получаете простую страницу «нажмите, чтобы перенаправить», и автоматическое перенаправление, которое вы испытываете с firefox, внедряется в javascript (который Requets.get не может обработать).
  • Или веб-сайт выдает еще одну страницу с ошибкой (без ошибки серии 400) из-за чего-то еще не хватает, например, повар ie.

Тот факт, что response.history пуст, даже когда allow_redirects имеет значение True, является еще одним доказательством того, что вы никогда не получите конечную страницу, которую видите в firefox, и что 200 вы получение - это не конечная страница, а страница «нажмите здесь» или страница с ошибкой.

...