Проблемы с requests и url в кириллице

import requests

def check_and_save_bad_urls(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as file:
        urls = file.read().splitlines()
                
    with open(output_file, 'w', encoding='utf-8') as error_file:
        for url in urls:
            try:
                response = requests.head(url)
                if (response.status_code == 404) or (response.status_code == 301):
                    print(f"URL {url} вернул ошибку. Записываем в файл bad_url.txt.")
                    error_file.write(url + '\n')
            except requests.RequestException as e:
                print(f"Ошибка при запросе URL {url}: {e}")

Замените 'url.txt' на имя вашего файла с URL-ами

check_and_save_bad_urls('C:\\Python\\ping_url_yd\\url.txt', 'C:\\Python\\ping_url_yd\\bad_url.txt')

Есть код который берет url из файла url.txt проверяет их на ответ сервера и если ответ с ошибкой 404 или 301 то записывает их в файл.
Если в файл url.txt поместить url вида сайт.рф, то скрипт такое ощущение, что его просто пропускает.


Ответы (1 шт):

Автор решения: Ильназ Рекламов

всем спасибо вроде заработало

в файле url.txt

https://ya.ru/?utm_campaign={campaign_id}&utm_content={ad_id}&utm_medium=cpc&utm_source=yandex&utm_term={keyword}
https://ya.ru/no_url?utm_campaign={campaign_id}&utm_content={ad_id}&utm_medium=cpc&utm_source=yandex&utm_term={keyword}
https://окна.рф/?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}
https://окна.рф/пустая_страница?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}

после работы скрипта в файле bad_url.txt

https://ya.ru/no_url?utm_campaign={campaign_id}&utm_content={ad_id}&utm_medium=cpc&utm_source=yandex&utm_term={keyword}
https://окна.рф/пустая_страница?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}

вроде все норм

→ Ссылка