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

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

Оновлено · Редакція 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 ГБ

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт