Как на Python написать скрипт для автоматической проверки доступности списка URL-адресов и записи ошибок в текстовый файл?

Для автоматической проверки доступности списка URL-адресов на Python удобно использовать библиотеку `requests`. Она позволяет отправлять HTTP-запросы и анализировать ответы сервера.

**Базовый скрипт выглядит следующим образом:**

python
import requests
from datetime import datetime

urls = [
‘https://example.com’,
‘https://google.com’,
‘https://несуществующий-сайт.ru’,
‘https://httpstat.us/500’,
]

error_log = ‘errors.txt’

with open(error_log, ‘w’, encoding=’utf-8′) as f:
f.write(f’Проверка доступности URL — {datetime.now()}nn’)
for url in urls:
try:
response = requests.get(url, timeout=10)
if response.status_code == 200:
print(f'[OK] {url}’)
else:
msg = f'[ОШИБКА {response.status_code}] {url}n’
print(msg.strip())
f.write(msg)
except requests.exceptions.ConnectionError:
msg = f'[НЕДОСТУПЕН] {url} — не удалось подключитьсяn’
print(msg.strip())
f.write(msg)
except requests.exceptions.Timeout:
msg = f'[ТАЙМАУТ] {url} — превышено время ожиданияn’
print(msg.strip())
f.write(msg)
except requests.exceptions.RequestException as e:
msg = f'[ИСКЛЮЧЕНИЕ] {url} — {e}n’
print(msg.strip())
f.write(msg)

print(f’nОшибки записаны в файл: {error_log}’)

**Что делает этот скрипт:**
1. Перебирает список URL-адресов.
2. Отправляет GET-запрос с таймаутом 10 секунд.
3. Если статус ответа не 200 — записывает ошибку в файл.
4. Обрабатывает исключения: недоступность сервера, таймаут и другие сетевые ошибки.
5. Сохраняет все проблемные URL в файл `errors.txt` с временной меткой.

**Улучшения для продакшена:**
— Используйте `concurrent.futures.ThreadPoolExecutor` для параллельной проверки большого количества URL.
— Добавьте заголовок `User-Agent`, чтобы избежать блокировок: `headers={‘User-Agent’: ‘Mozilla/5.0’}`.
— Для очень больших списков загружайте URL из внешнего файла: `urls = open(‘urls.txt’).read().splitlines()`.
— Настройте повторные попытки через `requests.adapters.HTTPAdapter` с параметром `max_retries`.

**Установка зависимостей:**
bash
pip install requests

Такой скрипт подходит для мониторинга сайтов, проверки работоспособности API-эндпоинтов и аудита ссылок перед публикацией.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.