Як працюють роботи (spiders) пошукових машин
Першою причиною того, що я наважився написати цю статтю, з'явився випадок, коли я досліджував файл логів доступу до мого сервера і виявив там такі два рядки:
тобто Lycos звернувся до мого сервера, на перший запит отримав, що файлу /robots.txt немає, обнюхав першу сторінку, і відвалив. Природно, мені це не сподобалося, і я почав з'ясовувати що до чого.
Виявляється, все "розумні" пошукові машини спочатку звертаються до цього файлу, який повинен бути присутнім на кожному сервері. Цей файл описує права доступу для пошукових роботів, причому існує можливість вказати для різних роботів різні права. Для нього існує стандарт під назвою Standart for Robot Exclusion.
На думку Луїса Моньє (Louis Monier, Altavista), тільки 5% всіх сайтів в даний час має не порожні файли /robots.txt якщо взагалі вони (ці файли) там існують. Це підтверджується інформацією, зібраною при недавньому дослідженні логів роботи робота Lycos. Шарль Коллар (Charles P.Kollar, Lycos) пише, що тільки 6% від всіх запитів на предмет /robots.txt мають код результату 200. Ось кілька причин, за якими це відбувається:
- люди, які встановлюють Веб-сервера, просто не знають ні про цей стандарт, ні про необхідність існування файлу /robots.txt.
- не обов'язково людина, інсталювати Веб-сервер, займається його наповненням, а той, хто є вебмастером, не має належного контакту з адміністратором самої "залізяки".
- це число відображає число сайтів, які дійсно потребують виключення зайвих запитів роботів, оскільки не на всіх серверах є такий істотний трафік, при якому відвідування сервера пошуковим роботом, стає помітним для простих користувачів.
Формат файлу /robots.txt.
Файл /robots.txt призначений для вказівки всім пошуковим роботам (spiders) індексувати інформаційні сервера так, як визначено в цьому файлі, тобто тільки ті директорії і файли сервера, які НЕ описані в /robots.txt. Це файл повинен містити 0 або більше записів, які пов'язані з тим чи іншим роботом (що визначається значенням поля agent_id), і вказують для кожного робота або для всіх відразу що саме їм НЕ ТРЕБА індексувати. Той, хто пише файл /robots.txt, повинен вказати подстроку Product Token поля User-Agent, яку кожен робот видає на HTTP-запит индексируемого сервера. Наприклад, нинішній робот Lycos на такий запит видає як поля User-Agent:
Якщо робот Lycos не знайшов свого опису в /robots.txt - він чинить так, як вважає за потрібне. Як тільки робот Lycos "побачив" у файлі /robots.txt опис для себе - він чинить так, як йому наказано.
При створенні файлу /robots.txt слід враховувати ще один фактор - розмір файлу. Оскільки описується кожен файл, який не слід індексувати, та ще для багатьох типів роботів окремо, при великій кількості не підлягають індексації файлів розмір /robots.txt стає занадто великим. В цьому випадку слід застосовувати один або кілька таких способів скорочення розміру /robots.txt:- вказувати директорію, яку не слід індексувати, і, відповідно, не підлягають індексації файли розташовувати саме в ній
- створювати структуру сервера з урахуванням спрощення опису виключень в /robots.txt
- вказувати один спосіб індексування для всіх agent_id
- вказувати маски для директорій і файлів
Записи (records) файлу /robots.txt
Загальний опис формату запису.
Опис параметрів, що застосовуються в записах /robots.txt
[. ] + Квадратні дужки з наступним за ними знайомий + означають, що як параметри повинні бути вказані один або кілька термінів.
Наприклад, після "User-Agent:" через пробіл можуть бути вказані один або кілька agent_id.
[. ] * Квадратні дужки з наступним за ними знайомий * означають, що як параметри можуть бути вказані нуль або декілька термінів.
[. ]? Квадратні дужки з наступним за ними знайомий. означають, що як параметри можуть бути вказані нуль або один термін.
|. означає або те, що до риси, або те, що після.
WS один із символів - пробіл (011) або табуляція (040)
NL один з символів - кінець рядка (015). повернення каретки (012) або обидва цих символу (Enter)
User-Agent: ключове слово (заголовні і прописні букви ролі не грають).
Параметрами є agent_id пошукових роботів.
Disallow: ключове слово (заголовні і прописні букви ролі не грають).
Параметрами є повні шляхи до Неіндексований файлів або тек
agent_id будь-яку кількість символів, що не включають WS і NL, які визначають agent_id різних пошукових роботів. Знак * визначає всіх роботів відразу.
path_root будь-яку кількість символів, що не включають WS і NL, які визначають файли і директорії, які не підлягають індексації.
Якщо не враховувати специфіку роботи кожного пошукового робота, можна вказати винятки для всіх роботів відразу. Це досягається завданням рядка
Якщо пошуковий робот виявить у файлі /robots.txt кілька записів з задовольняє його значенням agent_id, то робот може вибирати будь-яку з них.
Кожен пошуковий робот визначатиме абсолютний URL для читання з сервера з використанням записів /robots.txt. Великі і малі символи в path_root МАЮТЬ значення.
У прикладі 1 файл /robots.txt містить два записи. Перша відноситься до всіх пошукових роботів і забороняє індексувати всі файли. Друга відноситься до пошуковому роботу Lycos і при індексуванні їм сервера забороняє директорії / cgi-bin / і / tmp /, а решта - дозволяє. Таким чином сервер буде проіндексовано тільки системою Lycos.
У прикладі 2 файл /robots.txt містить два записи. Перша дозволяє пошуковим роботам Copernicus і Fred індексувати весь сервер. Друга - забороняє всім і осебенно роботу Rex індексувати такі директорії і файли, як / tmp /, / tea-time /, /top-cat.txt, /traverse.this і т.д. Це як раз випадок завдання маски для директорій і файлів.
У прикладі 3 - одна запис. Тут всім роботам забороняється індексувати директорію / spiders / not / here /, включаючи такі шляхи і файли як / spiders / not / here / really /, /spiders/not/here/yes/even/me.html. Однак сюди не входять / spiders / not / або / spiders / not / her (в директорії '/ spiders / not /').
Деякі проблеми, пов'язані з пошуковими роботами.
Незавершеність стандарту (Standart for Robot Exclusion).
На жаль, оскільки пошукові системи з'явилися не так давно, стандарт для роботів знаходиться в стадії розробки, доопрацювання, ну і т.д. Це означає, що в майбутньому зовсім необов'язково пошукові машини будуть їм керуватися.
Ця проблема не дуже актуальна для українського сектора Internet, оскільки не так вже й багато вУкаіни серверів з таким серйозним трафіком, що відвідування їх пошуковим роботом буде заважати звичайним користувачам. Власне, файл /robots.txt для того і призначений, щоб обмежувати дії роботів.
Не всі пошукові роботи використовують /robots.txt.
На сьогоднішній день цей файл обов'язково запитується пошуковими роботами тільки таких систем як Altavista, Excite, Infoseek, Lycos, OpenText і WebCrawler.
Використання мета-тегів HTML.
Початковий проект, який був створений в результаті угод між програмістами деякого числа комерційних індексуючих організацій (Excite, Infoseek, Lycos, Opentext і WebCrawler) на недавніх зборах Distributing Indexing Workshop (W3C). нижче.
На цих зборах обговорювалося використання мета-тегів HTML для управління поведінкою пошукових роботів, але остаточної угоди досягнуто не було. Були визначені наступні проблеми для обговорення в майбутньому:- Невизначеності в специфікації файлу /robots.txt
- Точне визначення використання мета-тегів HTML, або додаткові поля у файлі /robots.txt
- Інформація "Please visit"
- Поточний контроль інформації: інтервал або максимум відкритих з'єднань з сервером, при яких можна починати індексувати сервер.
Цей тег призначений для користувачів, які не можуть контролювати файл /robots.txt на своїх веб-сайтах. Тег дозволяє задати поведінку пошукового робота для кожної HTML-сторінки, однак при цьому не можна зовсім уникнути звернення робота до неї (як можливо вказати у файлі /robots.txt).
robot_terms - це розділений комами список такі ключові слова (заголовні або рядкові символи ролі не грають): ALL, NONE, INDEX, NOINDEX, FOLLOW, NOFOLLOW.
NONE - каже всім роботам ігнорувати цю сторінку при індексації (еквівалентно одночасному використанню ключових слів NOINDEX, NOFOLLOW).
ALL - дозволяє індексувати цю сторінку і всі посилання з неї (еквівалентно одночасному використанню ключових слів INDEX, FOLLOW).
INDEX - дозволяє індексувати цю сторінку
NOINDEX - Не дозволяється індексувати цю сторінку
FOLLOW - дозволяє індексувати всі посилання з цієї сторінки
NOFOLLOW - Не дозволяється індексувати посилання з цієї сторінки
Якщо цей мета-тег пропущений або не вказані robot_terms, то за замовчуванням пошуковий робот надходить як якби були вказані robot_terms = INDEX, FOLLOW (тобто ALL). Якщо в CONTENT виявлено ключове слово ALL, то робот поступає відповідно, ігноруючи можливо зазначені інші ключові слова. Якщо в CONTENT є протилежні за змістом ключові слова, наприклад, FOLLOW, NOFOLLOW, то робот поступає на свій розсуд (в цьому випадку FOLLOW).
Якщо robot_terms містить тільки NOINDEX, то посилання з цієї сторінки не індексуються. Якщо robot_terms містить тільки NOFOLLOW, то сторінка індексується, а посилання, відповідно, ігноруються.
text - той текст, який буде виводитися в сумарному відповіді на запит користувача до пошукової системи. Цей текст не повинен містити тегів розмітки і найлогічніше вписати в нього сенс даного документа на пару-трійку рядків.
Передбачувані варіанти виключення повторних відвідувань за допомогою мета-тегів HTML
Деякі комерційні пошукові роботи вже використовують мета-теги, що дозволяють здійснювати "зв'язок" між роботом і вебмастером. Altavista використовує KEYWORDS мета-тег, а Infoseek використовує KEYWORDS і DESCRIPTION мета-теги.
Індексувати документ один раз або робити це регулярно?
Веб-майстер може "сказати" пошуковому роботу або файлу bookmark користувача, що вміст того чи іншого файлу буде змінюватися. У цьому випадку робот не буде зберігати URL, а броузер користувача внесе або не внесе це файл в bookmark. Поки ця інформація описується тільки у файлі /robots.txt, користувач не знатиме про те, що ця сторінка буде змінюватися.
Мета-тег DOCUMENT-STATE може бути корисний для цього. За замовчуванням, цей мета-тег приймається з CONTENT = STATIC.
Як виключити індексування генеруються сторінок або дублювання документів, якщо є дзеркала сервера?
Генеруються сторінки - сторінки, що породжуються дією CGI-скриптів. Їх напевно не слід індексувати, оскільки якщо спробувати провалитися в них з пошукової системи, буде видана помилка. Що стосується дзеркал, то негоже, коли видаються дві різні посилання на різні сервера, але з одним і тим же вмістом. Щоб цього уникнути, слід використовувати мета-тег URL із зазначенням абсолютного URL цього документа (у разі дзеркал - на відповідну сторінку головного сервера).
джерела- Charles P.Kollar, John R.R. Leavitt, Michael Mauldin, Robot Exclusion Standard Revisited, www.kollar.com/robots.html
НОВИНИ ФОРУМУ
Лицарі теорії ефіру
Про це Корнілов написав на своїй сторінці в соцмережі.
За словами Корнілова, тоді його повідомлення було сприйнято з недовірою.
Тепер же Сміла Корнілов вирішив повернутися до цієї теми, в зв'язку з чим публікує у себе в фейсбуці фотографії загадкових ізраїльтян, які брали участь в одеській бійні.
Серед безлічі питань, на які Корнілов, за його словами, хотів би отримати відповідь, наприклад, такі:
«Чому вони випадково розгулювали по Одесі з медичним спорядженням, в гумових рукавичках, звідки вони знали заздалегідь про те, що будуть поранені й убиті? Або чому цей боєць раптом різко забув англійську, коли зрозумів, що його записують? ».
Води озер, морів і океанів північного по --------- Лушар обертаються проти годинникової -з-т - р-е-л-к-і, а води південного полушарія- в-ра - ща-ють -ся- по- ч-асів стрілкою, - обра-зуя- -гіг-ант-скі-е вод-ово-роти.
Основною причиною обертання вирів є місцеві вітру.
І чим вище швидкість вітрів тим вище швидкість обертання вирів і як наслідок, вище відцентрова сила вирів, завдяки чому підвищується рівень вод морів і океанів.
А чим нижче відцентрова сила вирів, тим нижче рівень вод морів і океанів.
Швидкість течій, по периметру морів і океанів не скрізь однакова і залежить від глибини узбережжя. У мілководній частині моря швидкість течій збільшується, а в глибоководній частині моря зменшується.
Сезонні коливання рівня вод спостерігаю-ться не по всьому узбережжю морів і океан-ів, а тільки в тих узбережжях де висока кутова швидкість течій і як наслідок, висока відцентрова сила води. (Відцентрова сила F = v / r).
На прямолінійних узбережжях, де течії не мають кутовий швидкістю, рівень вод не підвищується.