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