@ParenPacan

Как настроить проверку правильного ответа сервера через Python?

Подскажите в чем проблема кода? Пытаюсь спарсить ответы сервера по списку страниц, но для некоторых ссылок показывает неверный результат, а именно по первому из списка URL, отдает ответ 200, хотя по факту 301, по остальным URL выдает верный ответ. Я новичок в Python

import requests
import pandas as pd
from requests.models import Response
import urllib3

urllib3.disable_warnings()


#headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
#AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}
d = {}
#options = {
     #'muteHttpExceptions': True,
    # 'followRedirects': False
#}

with open('all-website-url.txt', encoding="utf-8") as f:
    response_url = [line.strip() for line in f]


    for i in response_url:
        #resp = f'https://www.google.ru/search?q=site:{i}'
        response = requests.post(i, allow_redirects=False)
        #resp.AllowAutoRedirect = false
        print(response)
        if response.status_code == 200:
            print("200")

            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("200")
        elif response.status_code == 301:
            print("301")

            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("301")
        elif response.status_code == 404:
            print("404")

            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("404")
        elif response.status_code == 302:
            print("302")

            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("302")
        else:
            print("Не ок")
            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("Перепроверить")
 

df = pd.DataFrame(data=d)
df.to_excel('./googlecheckindex.xlsx')


Список URL
https://stroki.mts.ru/persons/9779
https://bronevik.com/ru/hotel/russia/anapa/great-e...
https://stroki.mts.ru/
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji
DevOps Engineer
301 один - это переход на другой адрес, который уже дает 200. Так что это промежуточный ответ. Смотрите как настраивать на ловлю промежуточного ответа - если необходимо конечно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы