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
| Zadanie | Port | Dlaczego |
|---|---|---|
| Niezależne strony, katalogi | 823 (HTTP) lub 824 (SOCKS5) | Nowy IP przy każdym żądaniu |
| Paginacja, filtry, koszyk | 10000-20000 | Jeden IP na 1-120 minut |
| Kilka wątków z sesjami | Osobny port na wątek | Każ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.