Краулер (поисковый робот)
Краулер — программа, которая автоматически обходит страницы по ссылкам, например поисковый робот.
Обновлено · Редакция 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 ГБ
Регистрация за минуту, доступы сразу после оплаты.