Каталог ботов Официальные сети Онлайн-чекер Генератор защиты

Python Requests / aiohttp / urllib

Материал из справочника сетевых ботов и веб-краулеров.

Python Requests / aiohttp / urllib — Самая популярная библиотека в мире для написания спам-ботов, брутфорсеров админок и парсеров.

1. Общие сведения и назначение бота

Скрипты на Python — главное оружие ботоводов. Через библиотеку requests отправляются миллионы запросов на регистрацию спам-аккаунтов, отправку форм обратной связи, подбор паролей к WordPress/Bitrix и накрутку поведенческих факторов (ПФ).

Оператором и разработчиком бота выступает Python Software Foundation. Основная функциональная задача робота — систематический сбор данных, анализ гиперссылок и выкачивание текстовой информации со страниц сайтов. В зависимости от используемых скриптов бот может запрашивать как статические HTML-файлы, так и инициировать рендеринг тяжелых динамических страниц.

2. Сигнатуры User-Agent и сетевой профиль

В журналах веб-сервера (access.log) бот обычно идентифицирует себя следующими сигнатурами в заголовке User-Agent:

Сигнатура User-Agent #1
python-requests/2.31.0
Сигнатура User-Agent #2
python-requests/2.28.1
Сигнатура User-Agent #3
Python-urllib/3.10
Сигнатура User-Agent #4
aiohttp/3.8.5
Сетевые параметры и характеристики протокола:
Версия HTTP: HTTP/1.1 (библиотека urllib3)
Характерные заголовки: python-requests/2.X.X, python-urllib/3.X; заголовки Sec-Ch-Ua отсутствуют.
Выполнение JavaScript: JavaScript не поддерживается вообще (запросы чистые HTTP GET/POST).
Обратный DNS (PTR): Как правило, хостинговые PTR серверов.
Используемые IP-подсети: Серверные подсети

3. Создаваемая нагрузка и последствия для сайта

Нерегулируемая активность краулера может приводить к ощутимым проблемам как для технической инфраструктуры, так и для бизнес-показателей проекта:

Когда робот генерирует десятки параллельных запросов в секунду, каждый такой запрос инициирует запуск интерпретатора PHP, подключение к СУБД MySQL и генерацию HTML-страницы. На виртуальных хостингах это мгновенно исчерпывает лимиты тарифного плана (CPU, оперативная память, процессы PHP-FPM), из-за чего реальные посетители сталкиваются с медленной загрузкой или ошибками 502/504 Bad Gateway.

4. Влияние на поисковые позиции и рекламу

Поисковая оптимизация (SEO)
Никакого. Поисковые системы никогда не используют Python-requests.
Контекстная реклама (Яндекс.Директ)
Прямая экономия ресурсов сервера: спам-скрипты не дойдут до базы данных.

5. Проверка визитов бота в журналах сервера

Чтобы узнать, заходит ли данный робот на ваш сайт прямо сейчас и как часто он сканирует разделы, достаточно выполнить команду в консоли веб-сервера:

Проверка логов в Linux / Nginx (SSH консоль)
grep -i 'python-requests' /var/log/nginx/access.log | tail -n 20

Примечание: если у вас обычный виртуальный хостинг без доступа по SSH (Beget, TimeWeb, Reg.ru, cPanel), откройте панель управления, найдите раздел «Журнал посещений» (или «Свежие логи») и воспользуйтесь поиском по названию бота или строке его User-Agent.

Подозрительный IP в журнале посещений? Проверьте сетевую репутацию, принадлежность к хостингу и статус в Spamhaus онлайн.
Проверить в чекерe IP и ботов →

6. Рекомендация по обработке трафика

Рекомендация: блокировать доступ
Строго блокировать. Живые люди не посещают сайты через консольные Python-скрипты.

7. Способы ручной блокировки

Если вы хотите заблокировать робота на уровне веб-сервера вручную, используйте следующие директивы конфигурации:

Конфигурация для Nginx
if ($http_user_agent ~* (python-requests|Python-urllib|aiohttp)) {
    return 444;
}

Директива return 444; в Nginx закрывает сетевое TCP-соединение без передачи байтов ответа, экономя оперативную память и процессор сервера.

Конфигурация для Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (python-requests|Python-urllib|aiohttp) [NC]
RewriteRule .* - [F,L]

Вставьте указанный блок в начало файла .htaccess в корневой папке вашего сайта.

Выражение Cloudflare WAF Expression
(http.user_agent contains "python-requests") or (http.user_agent contains "Python-urllib")

Создайте Custom Rule в панели Cloudflare: Security → WAF → Custom Rules с действием Block.

Файл robots.txt
Бесполезен: скрипты не считывают robots.txt.

Добавьте правило в файл robots.txt в корневом каталоге домена.

8. Причины неэффективности стандартных методов

Ограничения классических правил:

Скрипты Python нацелены на отправку прямых POST-запросов к формам.

В реальных условиях блокировка по User-Agent и директивы robots.txt защищают сайт лишь от примитивных скриптов. Продвинутые краулеры и парсеры обходят эти фильтры за счет трех факторов:

  1. Подмена заголовков (спуфинг): бот отправляет User-Agent популярного десктопного браузера, из-за чего веб-сервер принимает его за обычного посетителя.
  2. Ротация IP-адресов: запросы распределяются через сотни тысяч резидентных и мобильных прокси, делая блокировку по статическим IP неэффективной.
  3. Headless-движки (Chromium, Puppeteer): эмуляторы полноценно исполняют JavaScript, проходя большинство поверхностных проверок.

9. Автоматическая нейтрализация в AntiBotCore

Полная ликвидация Python-ботов в AntiBotCore
AntiBotCore по умолчанию мгновенно сбрасывает соединение с агентами Python через 444 Drop. Если ботовод подменил User-Agent на Chrome, Python-скрипт срезается на тесте исполнения JavaScript и PoW.
Принцип фильтрации в AntiBotCore: защитное ядро не полагается исключительно на текстовые заголовки. Оно проводит фоновый аппаратный тест видеокарты (Canvas PoW) за 20 мс, проверяет подлинность роботов Яндекса и Google через обратный DNS (PTR) и мгновенно сбрасывает паразитные запросы с минимальным оверхедом (<1 мс) до запуска тяжелого ядра CMS и базы данных MySQL.
Подключить защиту сайта →

10. Часто задаваемые вопросы (FAQ)

Заходят ли реальные пользователи с Python-requests? +

Боты со схожим поведением или относящиеся к категории «Скрипты, библиотеки и утилиты»:

Категории: Скрипты, библиотеки и утилиты • Сетевые боты • Сигнатуры WAF
Последнее обновление: 20 октября 2026 г.