Часті питання про пошукових роботах

Загальна інформація про пошукових роботах

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

Зауважте, що слово «рекурсивно» тут не відноситься до конкретної реалізації алгоритмів. Робот може, наприклад, випадковим чином вибирати документ який буде оброблений таким, або відвідувати їх через значні проміжки часу, тим не менш він вважається роботом.

Звичайні веб-браузери до роботам не належать, оскільки управляються людиною і не отримують документи, на які стоять посилання, автоматично (за винятком картинок, скриптів і т.п.).

Пошукових роботів іноді називають павуками, Web Wanderers або Web Crawlers. Такі назви вносять деяку плутанину, тому що створюється враження, що програми переміщаються по інтернету самостійно, на манер вірусів. Це не так, робот «відвідує» сайти, просто запитуючи з них документи.

Що таке агент?

Слово «агент» має кілька значень. наприклад:

автономні агенти

це програми, що переміщаються від сайту до сайту і самостійно вирішують, що робити далі. Зазвичай вони переміщаються між спеціалізованими серверами, і практично не поширені в інтернеті.

інтелектуальні агенти

це програми, які допомагають користувачам - наприклад у виборі продукту, заповненні форм або навіть в пошуку. Такі програми мають дуже мало спільного з мережному взаємодії.

призначені для користувача агенти

це технічна назва програм, які допомагають користувачам в міжмережевих взаємодіях. Це можуть бути браузери, такі як Internet Explorer, Firefox або Opera або поштові програми, такі як Outlook Express, Thunderbird або Qualcomm Eudora.

Що таке пошукова система?

Які інші види роботів існують?

Існують роботи для різних цілей:

  • Індексація
  • Перевірка HTML
  • Перевірка посилань
  • Перевірка оновлень
  • віддзеркалення

У списку основних роботів Рунета ви можете знайти інформацію який робот для чого потрібен.

Що таке Роботи, Павуки, Черви?

Це все назви означають практично одне і те ж, але мають деякі відмінності:

роботи
загальна назва для всього виду програм, див. вище

павуки
то ж, що і роботи, але звучить набагато крутіше, тому більше подобається журналістам

черви
то ж, що і роботи, але на відміну від звичайних роботів, є що самовідтворюються

мурахи
розподілені (приклад: комарина зграя). взаємодіючі між собою роботи

Чи не шкодять пошукові роботи інтернету?

Є кілька причин, за якими люди вважають, що роботи шкодять інтернету:

У той же час більша частина роботів добре спроектована, професійно управляється, не створює ніяких проблем і надає прекрасний сервіс, особливо з огляду на відсутність альтернативних рішень.

Тому роботи за своєю природою не погані і не хороші, і тому вимагають уважного до себе ставлення.

Чи існують книги про пошукових роботах?

Bots and Other Internet Beasties by Joseph Williams
Я не Новомосковскл цю книгу, але чув наступний відгук: «Ця книга трохи розчарувала. Вона претендує на звання «інструкції» з написання роботів, але на мій погляд це просто набір глав, написаних людьми мають деякий досвід в даній області, і згодом зібрані вшити.

Internet Agents: Spiders, Wanderers, Brokers, and Bots by Fah-Chun Cheong.
Наскільки я знаю, ця книга більше не видається. У ній описані пошукові роботи, агенти для проведення комерційних трансакцій, агенти Mud (Multi-user Dungeons або Multi-user Dimensions мережеві ігри, зазвичай текстові) і деякі інші роботи. У книзі наведено вихідний код простого веб-робота на основі libwww-perl4.

HTTP, HTML і мережеві бібліотеки розглянуті в ній занадто швидко, щоб претендувати на роль «інструкції з написання роботів», але в ній дано досить багато теорії, і опис наявних реалізацій. Що особливо добре, якщо у вас немає часу на самостійний пошук цієї інформації в мережі.

Perl LWP by Sean M. Burke.
У книзі розповідається про те, як використовувати LWP, стандартну perl-бебліотеку для роботи з веб. У ній є глави про роботів. Рекомендую.

Spidering Hacks by Kevin Hemenway, Tara Calishain.
Чи не Новомосковскл. У книзі описуються павуки, LWP, robots.txt

Де я можу знайти додаткову інформацію про пошукових роботах?

індексуючі роботи

Яким чином роботи вибирають, яку сторінку індексувати?

Це залежить від робота - кожен використовує свої критерії для вибору. У загальному випадку, вони починають з документів, з яких йде багато посилань - наприклад, каталогів, новинних сайтів і найбільш популярних сайтів у мережі.

Більшість пошукових систем дозволяють додавати URL вручну. Після додавання вони додаються в чергу і через деякий час індексуються.

З цих джерел робот вибирає URL-и, які потім індексує, з них же він отримує списки нових URL-ів. Особливості поведінки найбільш поширених в Рунеті роботів можна подивитися у відповідному розділі.

Як робот вирішує, що йому індексувати?

Якщо індексує робот знає про існування документа, він може вирішити розпарсити його (розібрати, як розбирають пропозиції) і додати в базу. Сам процес залежить від конкретного робота: деякі роботи Новомосковскют тільки Title документів, деякі беруть перші кілька параграфів, деякі - беруть весь документ, індексують всі слова з різною вагою, в залежності від html-розмітки. Деякі розбирають мета-теги або інші спеціальні приховані теги.

Сподіваємося, що з розвитком інтернету, з'явиться більше можливостей ефективно зв'язати мета-дані документа з самим документом. Робота в цьому напрямку ведеться.

Як мені додати мій сайт для індексування?

Це залежить від пошукової системи. Багато системи розміщують посилання на додавання сайту на сторінці пошуку або в одному з розділів сайту. наприклад:

для адміністраторів

Як мені дізнатися, що на мій сайт заходив робот?

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

Якщо ваш сервер заності в балці user-agent-и, можете перевірити в логах незвичайні user-agent-и.

І нарешті, якщо з сайту запитували файл «/robots.txt», ймовірно, це був робот.

До мене на сайт заходив робот! Що мені робити?

Хмм, в принципі нічого :-). Суть в тому, що вони повністю автоматичні. Вам не потрібно нічого робити.

Якщо вам здається, що ви знайшли нового робота (тобто він не може бути перелічений діючих роботів і він заходить з певною періодичністю, напишіть мені, щоб я міг внести його в список. Але будь ласка, не пишіть мені про кожного помічене вами роботі !

Робот надто швидко забирає весь мій сайт!

Такі роботи називають «скорострільними», і користувачі, які переглядають лог-файли, зазвичай їх відразу помічають.

Однак, якщо ви використовуєте в якості веб-сервера свій персональний комп'ютер або у вас повільне серверне ПЗ, або багато довго формуються документів (наприклад, CGI-скрипти або просто дуже великі документи), то такі проблеми проявляються у відмовах у з'єднанні, високих навантаженнях, уповільненні роботи або в найгіршому разі в відмовах системи.

Якщо робот не може бути перелічений, надішліть мені зборах вами інформацію, включаючи початі вами дії. Навіть я не зможу допомогти, я напишу про це роботі і тим самим попереджу інших користувачів.

Як мені змусити роботів триматися подалі від мого сайту?

Про це в наступному розділі.

Стандарт виключення роботів

Чому у мене в логах з'являються запити файлу robots.txt?

Це запити від роботів, які пробою отримати інструкції для обробки сайту відповідно до стандарту виключення роботів.

Якщо ви не хочете давати роботам ніяких інструкцій, і в той-же час хочете прибрати ці повідомлення з логів, просто створіть в корені сайту порожній файл robots.txt.

Не варто писати туди html або текст, типу «Хто там?» - найімовірніше його ніхто ніколи не прочитає :-).

Як заборонити роботам індексувати мій сайт?

Найпростіший спосіб - помістити в /robots.txt наступні рядки:

Більш точкові обмеження задаються також просто.

Де мені дізнатися як працює файл /robots.txt?

User-agent: Yandex
Disallow:

User-agent: BadRobot
Disallow: /

User-agent: *
Disallow: / tmp
Disallow: / logs

Другий блок вказує, що робот з ім'ям «BadRobot» не повинен індексувати всі URL, що починаються з «/». Так як з «/» починаються всі URL, це просто означає, що для нього весь сайт закритий від індексування.

Третій блок забороняє всім іншим роботам індексувати URL, що починаються з / tmp або / log. «Зірочка» - це спеціальний символ, що означає «будь-який інший User-agent», але, тим не менш, ви не можете використовувати в інструкціях User-agent або Disallow регулярні вирази.

Тут часто допускають дві помилки:

  • Групові символи не підтримуються: замість «Disallow: / tmp / *» пишіть просто «Disallow: / tmp /».
  • Пишіть тільки один шлях в кожну Disallow-рядок (в наступних версіях специфікації це може змінитися).

Чи буде стандарт на robots.txt розвиватися далі?

Можливо ... є деяка кількість ідей з приводу цього стандарту. Ці ідеї так і не були оформлені в конкретні пропозиції з-за браку часу, або тому, що ці ідеї просували недостатньо наполегливо. Шліть свої пропозиції в список розсилки розробників роботів.

Що якщо у мене немає можливості створити файл robots.txt?

Іноді у вас немає можливості створити файл /robots.txt, наприклад через відсутність прав доступу. Для таких випадків існує новий стандарт, який використовує мета-теги для заборони індексації ваших документів.

Якщо ви включите в свій документ тег:

META NAME = «ROBOTS» CONTENT = "NOINDEX»

то цей документ проіндексований не буде.

А якщо ви напишете:

META NAME = «ROBOTS» CONTENT = "NOFOLLOW»

Чи не є перерахування файлів і директорій в файлі robots.txt небезпечним?

Деякі турбуються, що, перераховуючи файли і директорії в файлі /robots.txt, вони привертають до них непотрібну увагу. Для них два ради.

По-перше, ви можете помістити всі файли, які не повинні бути доступні роботам, в окрему директорію, конфігурувати сервер так, щоб не можна було отримати список файлів з цієї директорії, а потім записати в robots.txt тільки назва цієї директорії. Таким чином, роботи, що порушують стандарт, не зможуть проіндексувати файли в цій директорії, за винятком випадків, коли ви самі поставите на них посилання на інших сторінках.

Простіше кажучи, замість:

User-Agent: *
Disallow: /foo.html
Disallow: /bar.html

User-Agent: *
Disallow: / norobots /

помістіть в директорію "norobots" файли foo.html і bar.html і забороніть сервера віддавати список файлів, що знаходяться в цій директорії. Тепер атакуючий буде знати, що у вас є директорія "norobots", але не зможе дізнатися імена файлів, що знаходяться там - йому доведеться вгадувати їх.

Однак на практиці цей підхід дуже вразливий. Хтось може розмістити посилання на ваші файли на своєму сайті. Або їх назви можуть з'явитися в загальнодоступному лог-файлі, наприклад, генерований проксі-сервером, через який ходять відвідувачі вашого сайту. Або хтось може переналаштувати сервер, знову сказавши йому віддавати список файлів в директорії. Все це приводить нас до цього відповіді на це питання:

доступність

Як я можу скористатися послугами роботів?

Якщо ви маєте на увазі пошукові сервіси, то зараз в інтернет їх досить багато. Наприклад, спробуйте Яндекс або Google.

Де я можу дістати робота для себе?

Також багато проектів з відкритим кодом можна знайти на SourceForge.

Де я можу дістати вихідний код робота?

Дивіться попередній абзац - для деяких загальнодоступних роботів може надаватися вихідний код.

Або подивіться libwww-perl5 - з ним йде невеликий приклад.

І не забудьте пошукати на SourceForge.

Я пишу робота, на що мені варто звернути особливу увагу?

О, на багато що. Для початку, прочитайте всі матеріали цього сайту, потім - звіти з минулих WWW-конференцій, і специфікації HTML і HTTP ..

Я написав робота, як мені включити його в список?

Заповніть форму на сторінці The Web Robots Database і відправте її мені.