Как заблокировать пауков Baidu

15

Большинство моих посещений происходят от пауков байду. Я не думаю, что это помогает поисковым системам вообще, поэтому я думаю о том, как их заблокировать. Может ли это быть сделано через iptables? Я использую nginx в качестве своего веб-сервера.

Zhianc
источник
2
почему я не должен? Я не хочу китайского движения.
Жианц
6
Я не говорю, что вы не должны, я спрашиваю, зачем вообще это беспокоиться. Они тебе больно? Не проще ли просто проигнорировать? «Не желая китайского трафика» на самом деле здесь не ответ, а пограничная ксенофобия. И блокировать одну поисковую систему - это не то же самое, что блокировать китайцев, так что вы даже не имеете смысла Мне показалось, что вы, возможно, искали решение, основанное на неисправной проблеме. Но, видимо, вы просто произвольно хотите заблокировать какого-то паука, так что продолжайте, я думаю.
Вс
7
@Su 'Я обнаружил, что паук baidu очень агрессивно полз по моему сайту, что привело к задержке законного трафика. Кроме того, я также обнаружил, что паук baidu не подчиняется robots.txtправилам.
starbeamrainbowlabs
2
Я получаю около 1-2 ударов в секунду от предполагаемых пауков Baidu. Каждое попадание генерирует новый файл сеанса на моем сервере. У меня есть скрипт для удаления этих файлов сеанса, но эти пауки также перегружают мой сервер MySQL. Я определенно хочу заблокировать их.
Баттл Буткус
2
Может подтвердить, что baiduspider или что-то, изображающее из себя baiduspider, сканирует сайты неэтично и игнорирует директивы robots.txt.
JMC

Ответы:

8

В ваш robots.txt добавьте

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /
Anagio
источник
5
Что если они не уважают robots.txt?
Жианц
5
Я знаю, что доступ к Baiduspider / 2.0 с китайских IP-адресов не соответствует robots.txt на моем сайте. Кроме того, они часто используют скоординированный доступ (с интервалом в несколько минут) от одного и того же блока IP-адреса, который не использует идентификатор агента пользователя «Baiduspider».
mgkrebbs
Яндекс подчиняется robots.txt Я заблокировал их, пока мы не поняли, что значительная часть нашего бизнеса пришла из России и была вынуждена снять блок. Baidu, вы должны проверить сетевые блоки. Не все объявленные Baidu UA на самом деле являются Baidu, поэтому вам нужно сделать блок robots.txt для легитимного трафика Baidu, а затем сделать строковый блок UA в вашем .htaccess для того, что осталось, а затем тратить свою жизнь на выполнение блока путем идентификации блока и отказа в остальное, что обходит блок строки UA. Это такая же большая работа, как и усиление работы вашего сервера для получения трафика.
Fiasco Labs
2
У меня есть User-agent: *и доступ к baiduspider продолжают делать.
reinierpost
3
«Яндекс» - это другая поисковая система для российского рынка, поэтому просто включать его здесь, когда вопрос вообще не задается, и ничего не писать о нем, что-то безответственно.
Коллекционер
7

Я только что успешно заблокировал китайский поисковый робот Baiduspiderот доступа к любому контенту на моем сайте. Я принял решение сделать это по следующим причинам.

Причины решения заблокировать

  1. Примерно каждый 20-й запрос к моему серверу был от бота baidu. Это невежливое поведение. Baidubot обеспечивает 5% использования пропускной способности моих сайтов.
  2. Я прилагаю много усилий для того, чтобы ресурсы на моем сайте были небольшими и использовали такие технологии, как кеширование в браузерах, чтобы добиться небольших выигрышей в скорости и пропускной способности. Логично рассмотреть возможность освобождения этих 5% путем блокировки Baidubot.
  3. Возможность потери некоторого китайского трафика является приемлемым риском для бизнеса, поскольку контент сайта географически специфичен для Великобритании, версия на китайском языке отсутствует, а доход генерируется за счет рекламы, ориентированной на рынок Великобритании.

Поэтому я надеюсь, что Су и другие, обеспокоенные ксенофобией, поймут, что это решение - хладнокровный ответ на непрошенное количество запросов.

метод

Baiduspider получает доступ к моему серверу, используя много разных IP-адресов, но эти адреса попадают в определенные диапазоны. Итак, мой файл .htaccess теперь содержит следующие строки:

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

Суть в основном описывает 4 диапазона IP-адресов, в которых я знаю Baiduspider и ТОЛЬКО Baiduspider получает доступ к моему серверу. Каждый из 4 диапазонов состоит из 256 последовательных адресов (всего 1024). Обратите внимание, что синтаксис для диапазонов IP-адресов в deny from...строке может быть очень запутанным, если вы не читали о диапазонах CIDR. Просто поймите, что 0/24означает диапазон размера 256, начинающийся с 0, поэтому 180.76.5.0/24фактически означает каждый IP-адрес между 180.76.5.0и 180.76.5.255. Да, не особенно очевидно! Но если вы хотите узнать, почему, или вам просто нравится чувствовать смущение, перейдите на http://www.mediawiki.org/wiki/Help:Range_blocks.

Резюме

Интернет должен быть бесплатным, открытым и честным. Но это означает, что такие организации, как Baidu, учатся подчиняться Robots.txt и менее жадны к регулярности его обхода. Мое решение состоит в том, чтобы переделать очень мощные настройки, поэтому перед тем, как возиться с файлом .htaccess, обязательно сделайте резервную копию своего оригинала, готового к откату, если вы взорвете свой сервер во вспышке славы. Действуйте на свой страх и риск.

Мартин Столяр
источник
их блоки IP-адресов могут измениться, поэтому время от времени требуется техническое обслуживание
спрашивает
5

Вы можете использовать следующую директиву, robots.txtчтобы запретить сканирование вашего сайта.

# robots.txt
User-agent: Baiduspider
Disallow: /

Однако сканеры могут решить игнорировать содержимое вашего файла robots.txt. Кроме того, файл может быть кэширован поисковыми системами, и требуется время, чтобы отразить изменения.

Наиболее эффективным подходом является использование возможностей вашего сервера. Добавьте следующее правило в свой nginx.confфайл, чтобы заблокировать Baidu на уровне сервера.

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

Не забудьте перезапустить или перезагрузить Nginx, чтобы применить изменения.

Симона Карлетти
источник
3

Просто решил заблокировать Baidu, так как количество трафика, которое он нам давал, было слишком незначительным для их агрессивного сканирования. Кроме того, теперь они запускают агент, который олицетворяет браузер и запускает код JavaScript (например, Google Analytics) и портит нашу статистику.

Хорошая версия обновляет ваш robots.txt следующим

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

Но, учитывая то, что другие написали здесь, и что они используют пользовательский агент, который скрывает их присутствие, я бы полностью заблокировал их IP-адреса. Вот как это делается в nginx

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;
Коллекционер
источник
2

Wordpress решение (не самое лучшее, но помогает)

Та же проблема с пауком Biadu, настолько агрессивная, что моя коробка заняла 35 место в моей консоли, используя top. Очевидно, что даже быстрый компьютер не может эффективно обрабатывать внешние запросы с 35 ...

Я проследил, что количество IP-адресов (из этого здания Университета ????) составило несколько сотен, в основном с двумя пользователями.

Прямое следствие? Поскольку у меня есть облачный сервер, мне пришлось обновить его до более высокого уровня памяти, чтобы разрешить ответ с отклонением.

Предыдущий ответ:

#Baiduspider
User-agent: Baiduspider
Disallow: /

Baidu, похоже, совершенно не в состоянии соблюдать указания robot.txt.

Что я сделал:

Я установил плагин WP-Ban для Wordpress (бесплатно) и запретил следующее:

ПОЛЬЗОВАТЕЛЬСКИЕ АГЕНТЫ:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

Кроме того, используя Wp Super Cache, я перенаправляю страницу относительной ошибки на статическую страницу, таким образом, вся установка WordPress не / или, по крайней мере, только для запрещенных пользовательских агентов, проверяют наличие данных в Mysql.

(Это стандартная версия Wordpress, так что любой, кто может установить плагин Wordpress, может это сделать, поскольку для этой процедуры не требуется кодирование или доступ по ftp)

Я согласен со всеми: Интернет бесплатный, запрещение кому-либо или что-то, что является абсолютно последним, что кто-либо должен делать, но сегодня Baidoo стоит мне на 40 долларов США в месяц больше, просто чтобы пауковать веб-сайт, написанный на португальском, и у меня есть некоторые сомнения, если есть Многие китайцы и посетители могут читать и понимать этот язык.

Клаудио Клемп
источник
1

Вы можете заблокировать по IP-адресу с помощью ngx_http_access_modulenginx. Чтобы заблокировать один IP-адрес, вы можете добавить строку в файл conf, как

deny 12.34.567.1;

Чтобы заблокировать диапазон, используйте нотацию CIDR , как 12.34.567.1/24для 24-битного блока подсети (из 256 IP-адресов), который включает IP-адрес 12.34.567.1. Для более подробной информации смотрите, например, эту страницу .

mgkrebbs
источник
1

Используйте .htaccess с

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

«RewriteEngine On» позволяет вам правильно проанализировать следующие строки. HTTP_USER_AGENT - это строка, в которой пауки идентифицируют себя. Условие истинно, если строка содержит «MJ12bot» или «Baidu». NC означает «без учета регистра», и вы можете связать условия с помощью OR. Последняя строка не должна содержать «ИЛИ», иначе правило не работает.

Baidu особенно неприятен, потому что он пытается читать записи Wordpress ("fckeditor", "wp-content"), для которых нет абсолютно никаких причин. MJ12bot также является одним из плохих тварей.

Правило перезаписи означает блокировку паука с помощью 403 Запрещено ([F]) для доступа ко всем файлам (. * Является регулярным выражением для любого файла) и остановки дальнейшей оценки ([L]) htaccess.

Торстен С.
источник
1
FФлаг означает L, так что вам не нужно явно включить Lфлаг здесь. Кроме того, шаблон как ^.*Baiduто же самое, что и просто Baidu.
MrWhite