Боты5 мин чтения·11 августа 2026 г.

Python-urllib: это не бот, а настройка по умолчанию целого языка программирования

Строка Python-urllib/x.y — задокументированный дефолтный User-Agent стандартной библиотеки Python, а не имя одного оператора. Разбираем, почему под этим токеном скрывается кто угодно — от внутренних скриптов мониторинга до неприкрытого парсинга, — почему легитимные боты обычно так не выглядят, и как правильно настроить доступ для своих же скриптов.

TVTrafficVeil TeamЭксперты по защите веб-трафика
Уникальная иллюстрация бота Python urllib: легитимный прочие краулеры и сервисы

Python-urllib — не имя одного краулера с политикой поведения и контактным email, а буквально настройка по умолчанию стандартной библиотеки языка Python. Как прямо говорится в официальной документации Python: если разработчик ничего специально не настраивал, urllib представляется на сервере строкой Python-urllib/x.y, где x.y — номер версии установленного Python (например, Python-urllib/3.11). Иными словами, эта строка в логах — не бренд, а сигнал того, что кто-то запустил скрипт на Python и не потрудился (или не подумал) заменить заголовок User-Agent на что-то более информативное.

Почему под одной строкой скрывается кто угодно

Именно потому что это настройка по умолчанию целого языка программирования, а не продукт одной компании, под токеном Python-urllib в логах сайта может обнаружиться радикально разный трафик: чей-то внутренний скрипт мониторинга, разовая утилита для проверки доступности страницы, учебный проект студента, инструмент SEO-специалиста, написанный на коленке, — и, конечно, обычный парсинг контента, где автор просто не озаботился идентификацией. Ни официального оператора, ни списка IP, ни единой политики соблюдения robots.txt у этого «бота» в принципе быть не может — потому что это не один бот, а общий шаблонный след тысяч независимых, никак не связанных друг с другом клиентов.

Параметры

Параметр Значение
Типичные UA Python-urllib/3.x, устаревший Python-urllib/2.7, а также варианты, где транспортом выступает urllib3
Природа строки Заголовок User-Agent по умолчанию в стандартной библиотеке Python — задокументировано напрямую в docs.python.org
Оператор ❌ Множество независимых, никак не связанных друг с другом клиентов
Родственные строки того же происхождения python-requests (популярная сторонняя библиотека, тоже использует шаблонный UA по умолчанию, если не переопределён), голый curl/wget, aiohttp
Соблюдение robots.txt Обычно нет — сами по себе urllib и urllib3 не читают и не интерпретируют robots.txt, это ответственность автора конкретного скрипта, которую многие просто не реализуют
Список IP-адресов ❌ Неприменимо в принципе — источники географически и организационно не связаны

Почему легитимные интеграции обычно не выглядят так

Показательная деталь из практики Python-разработки: даже официальная документация Python прямо советует переопределять User-Agent при обращении к сторонним сайтам, поскольку многие серверы либо блокируют шаблонную строку целиком, либо обслуживают её иначе, чем обычных браузерных пользователей. Профильные руководства для авторов библиотек идут дальше и рекомендуют формат вида ИмяПродукта/Версия (+https://ссылка-на-документацию; контактный email) — то есть ровно то, что делают почти все легитимные боты, разобранные в этой серии: Slack-ImgProxy, redditbot, AddSearchBot и другие подписываются понятным именем с ссылкой на политику именно потому, что заинтересованы в прозрачной, предсказуемой коммуникации с администраторами сайтов. Тот факт, что конкретный клиент оставил дефолтную строку Python нетронутой, — либо небрежность, либо (что стоит держать в уме) сознательный расчёт остаться менее заметным среди фонового шума подобных запросов.

Не уверены, кто ходит по вашему сайту?

Подключите домен и посмотрите живую ленту: кто пришёл, с какой сети, что запрашивал и по какому правилу был пропущен или заблокирован.

Посмотреть свой трафик

Сколько трафика он создаёт

По сводке TrafficVeil, паттерн запросов python-urllib на подключённых доменах составил порядка 15 тысяч за март–июнь 2026 года (июнь — по 14 число). Для сравнения, у родственной по смыслу и происхождению строки python-requests объём заметно больше — порядка 769 тысяч запросов за тот же период, что отражает более широкую популярность именно этой сторонней библиотеки среди авторов скриптов и скраперов по сравнению со встроенным в язык urllib.

Как найти в логах

grep -iE "Python-urllib|urllib" /var/log/nginx/access.log

Поскольку это не единый оператор, а общий шаблон бесчисленных независимых клиентов, привычная схема верификации через whois/ASN здесь бессмысленна как способ «подтвердить легитимность» — принадлежность конкретного IP можно установить, но она скажет лишь о происхождении этого отдельного запроса, а не о характере всего класса трафика в целом.

Как настроить доступ

Для публичного сайта разумная политика по умолчанию — рассматривать нераспознанный UA этого класса как сигнал автоматизации без установленной политики, а не как «доброжелательного бота»:

if ($http_user_agent ~* "Python-urllib|python-requests") {
    return 403;
}

Если внутри организации есть собственные легитимные скрипты, работающие через urllib (мониторинг, интеграции, автоматизация), правильное решение — не оставлять для них общий доступ открытым, а выдать им собственный, узнаваемый User-Agent и внести конкретные IP-адреса этих скриптов в белый список:

# Пример собственного идентифицируемого UA для внутреннего скрипта
req.add_header('User-Agent', 'CompanyName-InternalMonitor/1.0 (+https://example.com/bot-info)')

Правило в robots.txt для этого класса трафика чаще всего работает слабо — многие скрипты на urllib его попросту не читают и не интерпретируют, поэтому основной контроль стоит держать на уровне сервера (блокировка, rate-limit или challenge), а не полагаться на добровольное соблюдение файла политики.

Частые вопросы

Python-urllib — это конкретная компания или сервис?
Нет, это буквально настройка по умолчанию стандартной библиотеки Python — задокументированная в официальной документации языка.
Почему под одним токеном может скрываться совершенно разный трафик?
Потому что любой, кто пишет скрипт на Python и не меняет заголовок User-Agent, автоматически получает эту строку — от легитимного мониторинга до банального парсинга.
Соблюдает ли этот класс трафика правила robots.txt?
Обычно нет — сами urllib и urllib3 robots.txt не читают, это ответственность автора конкретного скрипта, которую многие не реализуют.
Как должны выглядеть легитимные боты в отличие от дефолтного UA?
С понятным именем продукта, версией, ссылкой на документацию и контактным email — именно так подписываются почти все легитимные боты, разобранные в этой серии.
Что делать, если внутри компании есть свои легитимные скрипты на urllib?
Задать им собственный узнаваемый User-Agent и внести конкретные IP-адреса этих скриптов в белый список, а не оставлять общий доступ открытым.
Работает ли блокировка через robots.txt для этого класса трафика?
Слабо — многие скрипты его не читают, поэтому основной контроль лучше держать на уровне сервера через блокировку или rate-limit.
#python-urllib#python-requests#urllib3#автоматизация#бот-энциклопедия#robots.txt#User-Agent#TrafficVeil
TV
TrafficVeil Team

Команда TrafficVeil разрабатывает инструменты защиты сайтов от ботов, DDoS и веб-атак. Разборы ботов пишем по логам подключённых доменов и открытым данным операторов.

Похожие статьи

Ещё материалы из раздела «Боты» — те же вопросы, другие агенты.

Проверьте защиту своего сайта

Подключение занимает несколько минут. Начните с анализа трафика и включайте блокировки после проверки логов.

Тарифа на трафик нет. Платите за людей, а не за тех, кого отбили: боты, атаки и всё, что срезали фильтры, в счёт не идут. Тариф — число доменов и глубина настроек.

TrafficVeil