Краулер (поисковый робот)

Краулер — программа, которая автоматически обходит страницы по ссылкам, например поисковый робот.

Обновлено · Редакция Prokso

Краулер начинает с одной страницы, находит на ней ссылки и переходит по ним дальше. Так поисковые системы строят индекс, а SEO-программы находят битые ссылки и дубликаты.

Разница с парсингом в цели: краулер обходит сайт, а парсер извлекает конкретные данные. На практике одна программа часто делает и то, и другое.

Добросовестные краулеры читают robots.txt, держат умеренный темп и представляются в User-Agent.

Настройка прокси для популярных программ, например Screaming Frog и Scrapy, — в разделе инструкции.

Как спланировать сканирование сайта до старта

Начните с карты сайта: ее адрес часто указывают в robots.txt в строке Sitemap:. Она дает список страниц без прохода по каждой ссылке. Затем задайте границы: наибольшую глубину от стартовой страницы, количество страниц и домены, куда краулеру можно заходить.

Приводите адреса к одному виду, прежде чем добавить их в очередь. Убирайте параметры отслеживания вроде utm_source, пишите имя хоста строчными буквами, одинаково обрабатывайте косую черту в конце и пропускайте комбинации фильтров и бесконечные календари. Иначе краулер посетит одну и ту же страницу под сотнями адресов.

Темп и ответы сервера

Для одного сайта осторожная точка старта — один запрос раз в одну-несколько секунд; если в robots.txt есть Crawl-delay, берите это значение. Реагируйте на коды ответа: на 429 и 503 ждите столько, сколько говорит заголовок Retry-After, а если ошибки не прекращаются, останавливайте сканирование.

Условные запросы экономят и ресурсы сайта, и ваш трафик. Отправляйте If-Modified-Since или If-None-Match со значением из прошлого визита, и неизмененная страница вернет 304 без тела.

Вежливые настройки в Scrapy

  • ROBOTSTXT_OBEY = True — Scrapy читает robots.txt и пропускает закрытые разделы.
  • DOWNLOAD_DELAY и CONCURRENT_REQUESTS_PER_DOMAIN — пауза и количество параллельных запросов на сайт.
  • AUTOTHROTTLE_ENABLED = True — темп подстраивается под скорость ответов сайта.
  • USER_AGENT — название краулера со страницей контактов, например MyCrawler/1.0 (+https://example.com/bot).

Вместе эти настройки держат краулер ниже лимита запросов сайта без ручных пауз в коде.

Вопросы и ответы

Чем краулер отличается от парсера?

Краулер обходит страницы по ссылкам, парсер извлекает из них нужные данные. Часто одна программа делает и то, и другое.

Зачем краулеру прокси?

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

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт