robots.txt
Файл в корне сайта, описывающий, что владелец предпочёл бы не отдавать автоматическим клиентам. Это соглашение о поведении, а не контроль доступа.
Файл перечисляет агентов и пути и просит краулеры в часть из них не заходить. Соблюдается он добровольно. Ничто в веб-сервере его не принуждает, поэтому это заявление о предпочтении, а не система разрешений.
Из этого не следует ни что он бессмыслен, ни что он обязателен сам по себе. Поисковики его соблюдают, потому что это в их интересах. Коммерческий сборщик находится в другом положении: игнорирование не влечёт технического наказания, но может иметь значение в споре об условиях использования, а это вопрос юридический, а не технический.
Практический вес для сбора несут две директивы. Crawl-delay, если он есть, сообщает темп, который сайт считает приемлемым, и соблюдать его обычно дешевле, чем выяснять то же число через лимиты. Строки Sitemap указывают на структурный индекс сайта, а это часто самый быстрый способ понять, что там вообще есть.
Наша позиция та же, что и везде на этом сайте: мы продаём адреса и не советуем игнорировать заявленные предпочтения сайта. Прочитать файл перед обходом стоит одного запроса и нередко экономит спор.
Что файл может сказать, а что нет
Формат это набор блоков, каждый называет агента и затем разрешает или запрещает пути. Сопоставление идёт по префиксу, и применяется самый специфичный блок для вашего агента.
Директива Crawl-delay не входила в исходный стандарт и трактуется разными краулерами по-разному, но там, где сайт её публикует, это самое внятное высказывание о допустимом темпе, которое вы получите.
Строки Sitemap это полезная часть, которую почти никто не читает. Они указывают на XML-индекс со списком адресов, которые владелец хочет показать, и это лучше, чем обходить дерево категорий страница за страницей.
Прочитать до планирования
Один запрос и три вещи, которые стоит знать до первого обхода:
Что сайт говорит о себе
# сам файл
curl -s -x login_c_US:password@proxy.sotaproxy.com:10000 https://target.example/robots.txt
# предлагаемый темп, если он есть
curl -s -x login_c_US:password@proxy.sotaproxy.com:10000 https://target.example/robots.txt | grep -i "crawl-delay"
# структурный индекс, который обычно экономит много обхода
curl -s -x login_c_US:password@proxy.sotaproxy.com:10000 https://target.example/robots.txt | grep -i "sitemap"- Опубликованный Crawl-delay это бесплатная подсказка про тот лимит, с которым вы всё равно встретитесь.
- Карта сайта часто самый дешёвый способ перечисления, и она публична по замыслу.
- На сайтах, локализующих всё подряд, файл бывает разным по странам, поэтому читайте его через тот выход, с которого будете собирать.
Чем файл не является
Это не средство защиты
Путь, помеченный запрещённым, остаётся публично доступным. Упоминание в файле лишь сообщает миру, что он есть.
Это не пользовательское соглашение
Условия это отдельный документ с отдельными последствиями. Эти двое нередко расходятся.
Это не закон
Это соглашение о поведении. Имеет ли его игнорирование юридические последствия, зависит от юрисдикции, данных и того, что вы делаете дальше, и это вопрос к юристу.
Это не обещание про защиты
Разрешающий robots.txt ничего не говорит о том, будет ли сайт ограничивать вашу частоту или отказывать вашему классу адресов.
Смотри на практике
Готов использовать robots.txt?
SotaProxy даёт доступ к ротирующим резидентским, мобильным, дата-центр и ISP прокси. Без минимальных платежей.
Начать