Як заблокувати павуків байду


15

Більшість моїх візитів - від павуків baidu. Я не думаю, що це зовсім не допомагає пошуковим системам, тому я думаю, як їх заблокувати. Це можна зробити за допомогою iptables? Я використовую nginx як свій веб-сервер.


2
чому я не повинен? Я не хочу китайський трафік.
Zhianc

6
Я не кажу, що не варто, я так само запитую, чому взагалі турбуватись. Вони чимось шкодять вам? Чи не простіше просто ігнорувати? "Не хочу, щоб китайський трафік" тут насправді не відповідь, а лише прикордонна ксенофобія. А блокування однієї пошукової системи - це не те саме, що блокування китайців, тож ви навіть не маєте сенсу. Мені здалося, що ви, можливо, шукали рішення на основі несправної проблеми. Але, мабуть, ви просто довільно хочете заблокувати якогось павука, тому, мабуть, вперед.
Су '

7
@Su 'Я виявив, що павук 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: /

5
Що робити, якщо вони не поважають robots.txt?
Zhianc

5
Я випадково знаю, що доступ до "Baiduspider / 2.0" з китайських IP-адрес не підпорядковується robots.txt на моєму сайті. Крім того, вони часто використовують скоординований доступ (кілька хвилин один від одного) від того ж блоку IP-адрес, який не використовує ідентифікатор агента користувача "Baiduspider".
mgkrebbs

Яндекс підкоряється robots.txt Я їх заблокував, поки ми не зрозуміли, що хороший шматок нашого бізнесу походить з Росії, і йому довелося зняти блок. Байду, ти повинен перевірити мережеві блоки. Не всі заявлені Baidu UA - насправді Baidu, тому вам потрібно зробити блок robots.txt для законного трафіку Baidu, а потім зробити рядковий блок UA у своєму. решта, яка обертається навколо блоку рядків UA. Це стільки ж роботи, скільки просто покращення вашого сервера, щоб зайняти трафік.
Лабораторії Фіаско

2
У мене є User-agent: *доступ до байдуспідера і надалі.
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-адрес можуть змінюватися, тому йому потрібен час технічного обслуговування
asgs

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 в моїй консолі за допомогою верху. Очевидно, що навіть швидкий комп'ютер не може ефективно обробляти зовнішні запити, що працюють у 35 ...

Я простежив, щоб кількість ІС (з тієї будівлі університету ????) становила кілька сотень, в основному два користувачі)

Прямий наслідок? Оскільки у мене є хмарний сервер, мені довелося оновити те саме до більш високої пам'яті, щоб дозволити обман на відповідь.

Попередня відповідь:

#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 не / або принаймні лише для заборонених useragents перевіряє Mysql даних.

(Це стандартна Wordpress blablabla, тому кожен, хто має змогу встановити плагін 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-адрес), що включає 12.34.567.1 IP-адресу. Детальніше див., Наприклад, на цій сторінці .


1

Використовуйте .htaccess за допомогою

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

"Увімкнути перезаписEngine" дозволяє вам правильно проаналізувати наступні рядки. HTTP_USER_AGENT - це лінія, де павуки ідентифікують себе. Ця умова справедлива, якщо рядок містить "MJ12bot" або "Baidu". NC означає "не залежно від регістру", і ви можете зв'язувати умови з АБО. Останній рядок не повинен містити "АБО", або правило не працює.

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

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


1
FПрапор означає L, так що вам не потрібно явно включити Lпрапор тут. Крім того, зразок подібний ^.*Baiduпросто Baidu.
MrWhite
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.