Zbieranie danych ze stron (web scraping)

Zbieranie danych ze stron to automatyczne pobieranie publicznych danych ze stron internetowych: cen, opisów, stanów magazynowych, opinii.

Zaktualizowano · Redakcja Prokso

Program otwiera strony z listy, znajduje na nich potrzebne pola i zapisuje je w arkuszu lub bazie danych. Tak zbiera się ceny konkurencji, katalogi, pozycje w wyszukiwarce i publiczne ogłoszenia.

Główną przeszkodą jest limit żądań: strona szybko zauważy tysiące żądań z jednego adresu. Dlatego żądania rozkłada się na wiele adresów za pomocą rotacji.

Zbierać można tylko dane publiczne, z poszanowaniem zasad strony i prawa: dane osobowe i treści dostępne po zalogowaniu na konto to osobna kwestia.

Od czego zacząć i jaki typ proxy wybrać, opisujemy w scenariuszu zbieranie danych ze stron.

Przed pierwszym żądaniem

Otwórz /robots.txt strony: są tam sekcje, których właściciel prosi boty nie odwiedzać, a czasem też zalecana przerwa między żądaniami. O formacie przeczytasz w artykule robots.txt. Przeczytaj też regulamin: część stron wprost zabrania automatycznego zbierania danych, a część oferuje oficjalne API lub eksport danych, co jest szybsze i pewniejsze niż parsowanie HTML.

Niektóre strony są zamknięte dla wszystkich klientów Prokso, w tym serwisy rządowe, banki i systemy płatności. Lista jest na stronie zablokowane strony; żądania do nich przez proxy nie przejdą. A jeśli inna strona odpowiada 403 na każde żądanie, zatrzymaj się i ustal przyczynę, zamiast zmieniać adresy jeden po drugim.

Który port do jakiego zadania

ZadaniePortDlaczego
Niezależne strony, katalogi823 (HTTP) lub 824 (SOCKS5)Nowy IP przy każdym żądaniu
Paginacja, filtry, koszyk10000-20000Jeden IP na 1-120 minut
Kilka wątków z sesjamiOsobny port na wątekKażdy wątek trzyma własny IP

Jak oszczędzać transfer

Transfer jest liczony w obie strony, więc jego wielkość zależy od tego, co pobierasz. Pobieraj tylko HTML lub JSON, nie ładuj obrazów, czcionek i wideo bez potrzeby i wysyłaj Accept-Encoding: gzip, aby strony przychodziły skompresowane. Przeglądarka headless pobiera wszystko, co jest na stronie, i zużywa wielokrotnie więcej transferu niż zwykły klient HTTP.

Na start zwykle wystarczą proxy serwerowe. Zacznij od kilku równoległych żądań, choć plan pozwala na maksymalnie 1000, i ustaw w ustawieniach planu dobowy limit transferu, aby błąd w kodzie nie zużył salda.

Pytania i odpowiedzi (FAQ)

Czy zbieranie danych ze stron jest legalne?

Zbieranie danych publicznych jest w większości przypadków dopuszczalne, ale ma swoje granice: prawa autorskie, dane osobowe, zasady konkretnej strony. W razie wątpliwości warto skonsultować się z prawnikiem.

Jakie proxy są potrzebne do zbierania danych ze stron?

Zacznij od proxy serwerowych: są szybkie i niedrogie. Jeśli strona odpowiada CAPTCHA lub odmowami, przejdź na rezydencjalne.

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