Crawler (robot wyszukiwarki)

Crawler to program, który automatycznie przechodzi strony po linkach, na przykład robot wyszukiwarki.

Zaktualizowano · Redakcja Prokso

Crawler zaczyna od jednej strony, znajduje na niej linki i przechodzi dalej. Tak wyszukiwarki budują indeks, a programy SEO znajdują niedziałające linki i duplikaty.

Różnica w stosunku do zbierania danych leży w celu: crawler przechodzi stronę, a parser wyciąga konkretne dane. W praktyce jeden program często robi jedno i drugie.

Rzetelne crawlery czytają robots.txt, utrzymują umiarkowane tempo i przedstawiają się w User-Agent.

Ustawienia proxy dla popularnych programów, na przykład Screaming Frog i Scrapy, znajdziesz w dziale instrukcje.

Jak zaplanować przeszukiwanie przed startem

Zacznij od mapy strony: jej adres często podaje się w robots.txt w linii Sitemap:. Daje ona listę stron bez przechodzenia po każdym linku. Następnie ustal granice: maksymalną głębokość od strony startowej, liczbę stron i domeny, które crawler może odwiedzać.

Sprowadzaj adresy do jednej postaci, zanim dodasz je do kolejki. Usuwaj parametry śledzenia takie jak utm_source, zapisuj nazwę hosta małymi literami, zawsze tak samo traktuj ukośnik na końcu a kombinacji filtrów i niekończących się kalendarzy nie odwiedzaj wcale. Inaczej crawler odwiedzi tę samą stronę pod setkami adresów.

Tempo i odpowiedzi serwera

Dla jednej strony ostrożnym punktem startowym jest jedno żądanie co jedną do kilku sekund; jeśli w robots.txt jest Crawl-delay, przyjmij tę wartość. Reaguj na kody odpowiedzi: przy 429 i 503 czekaj tyle, ile mówi nagłówek Retry-After, a jeśli błędy się nie kończą, zatrzymaj przeszukiwanie.

Żądania warunkowe oszczędzają zarówno zasoby strony, jak i Twój transfer. Wysyłaj If-Modified-Since lub If-None-Match z wartością z poprzedniej wizyty, a niezmieniona strona zwróci 304 bez treści.

Uprzejme ustawienia w Scrapy

  • ROBOTSTXT_OBEY = True: Scrapy czyta robots.txt i nie odwiedza zamkniętych sekcji.
  • DOWNLOAD_DELAY i CONCURRENT_REQUESTS_PER_DOMAIN: pauza i liczba równoległych żądań na stronę.
  • AUTOTHROTTLE_ENABLED = True: tempo dopasowuje się do szybkości odpowiedzi strony.
  • USER_AGENT: nazwa crawlera ze stroną kontaktową, na przykład MyCrawler/1.0 (+https://example.com/bot).

Razem te ustawienia utrzymują crawler poniżej limitu żądań strony bez ręcznych pauz w kodzie.

Pytania i odpowiedzi (FAQ)

Czym crawler różni się od parsera?

Crawler przechodzi strony po linkach, parser wyciąga z nich potrzebne dane. Często jeden program robi obie rzeczy.

Po co crawlerowi proxy?

Żeby sprawdzić, jak strona wygląda z innego kraju, i rozłożyć żądania dużego przejścia na wiele adresów.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto