Jak wyodrębnić dane ze strony internetowej? Kompletny przewodnik do pobierania danych z dowolnej witryny (2024)

Sieć staje się niesamowitym źródłem danych. W Internecie dostępnych jest coraz więcej danych, pochodzących z treści generowanych przez użytkowników w mediach społecznościowych i na forach, witrynach handlu elektronicznego, witrynach nieruchomości lub w mediach… Wiele firm opiera się na tych danych internetowych lub w dużym stopniu od nich zależy.

Ręczne pobieranie danych ze strony internetowej i kopiowanie/wklejanie ich do arkusza kalkulacyjnego jest procesem podatnym na błędy i czasochłonnym. Jeśli chcesz zeskrobać miliony stron, nie można tego zrobić ręcznie, więc powinieneś to zautomatyzować.

W tym artykule zobaczymyjak uzyskać dane ze strony internetowejz wieloma różnymi rozwiązaniami. Najlepszy sposób pobierania danych z sieci zależy od następujących czynników:

  • Czy jesteś techniczny?
  • Czy macie wewnętrznych programistów?
  • Z jakich stron internetowych chcesz wyodrębnić dane?
  • Jaki jest Twój budżet?

Jak wyodrębnić dane ze strony internetowej? Kompletny przewodnik do pobierania danych z dowolnej witryny (1)


Zobacz diagram w wysokiej rozdzielczości tutaj

Nie jest łatwo wiedzieć, od czego zacząć, od samodzielnego budowania potoku skrobania stron internetowych, po struktury do skrobania stron internetowych i narzędzia do skrobania stron internetowych bez kodu.

Zanim zagłębimy się w sposób wydobywania danych z sieci, przyjrzyjmy się różnym przypadkom użycia skrobania sieci.

Jakie są różne przypadki użycia web scrapingu?

Oto kilka interesujących przypadków użycia skrobania stron internetowych:

  • Monitorowanie cen w Internecie: Wielu detalistów monitoruje rynek online, aby dynamicznie zmieniać swoje ceny. Monitorują stany magazynowe konkurencji, zmiany cen, sprzedaż, nowe produkty...
  • Nieruchomość: Wiele startupów działających na rynku nieruchomości potrzebuje danych z wykazów nieruchomości. To także kopalnia złota dla badań rynkowych.
  • Agregacja wiadomości: Witryny z wiadomościami są często odrzucane na potrzeby analizy nastrojów, ponieważ alternatywne dane dotyczące finansów/funduszy hedgingowych...
  • Media społecznościowe: Wiele firm pobiera dane z mediów społecznościowych w celu wyszukiwania sygnałów. Agencje zajmujące się marketingiem wpływowym uzyskują informacje od wpływowych osób, obserwując wzrost ich obserwujących i inne wskaźniki.
  • Agregacja recenzji: Wiele startupów zajmuje się agregacją recenzji i zarządzaniem marką. Pobierają recenzje z wielu różnych stron internetowych na temat restauracji, hoteli, lekarzy i firm.
  • Generowanie leadów: Gdy masz listę witryn internetowych, które są Twoimi klientami docelowymi, interesujące może być zebranie ich danych kontaktowych (adres e-mail, numer telefonu...) na potrzeby kampanii informacyjnych.
  • Wyniki wyszukiwania: Monitorowanie strony wyników wyszukiwania jest niezbędne dla branży SEO do monitorowania rankingów. Inne branże, takie jak sprzedawcy internetowi, również monitorują wyszukiwarki e-commerce, takie jak Zakupy Google, a nawet rynki, takie jak Amazon, monitorują i poprawiają swoje rankingi.

W naszym doświadczeniu ze ScrapingBee są to główne przypadki użycia, które widzieliśmy najczęściej u naszych klientów. Oczywiście jest wiele innych.

Jak wyodrębnić dane z sieci za pomocą kodu

W tej części przyjrzymy się różnym sposobom programowego wyodrębniania danych (za pomocą kodu). Jeśli jesteś firmą technologiczną lub masz wewnętrznych programistów, jest to zazwyczaj droga do zrobienia.

W przypadku dużych operacji skrobania stron internetowych napisanie własnego kodu skrobania stron internetowych jest zwykle najbardziej opłacalną i elastyczną opcją, jaką masz. Dostępnych jest wiele różnych technologii i frameworków i właśnie temu przyjrzymy się w tej części.

Wewnętrzny potok skrobania sieci

Załóżmy na przykład, że jesteś usługodawcą monitorującym ceny, który pobiera dane z wielu różnych witryn e-commerce.

Twój stos do skrobania stron internetowych prawdopodobnie będzie zawierał następujące elementy:

  • Pełnomocnicy
  • Bezgłowe przeglądarki
  • Reguły wyodrębniania (selektory XPath i CSS)
  • Planowanie zadań
  • Składowanie
  • Monitorowanie

Pełnomocnicysą centralnym elementem każdej operacji zgarniania sieci. Wiele stron internetowych wyświetla różne dane w zależności od kraju adresu IP. Na przykład sprzedawca internetowy wyświetli ceny w euro dla osób z Unii Europejskiej. Amerykańska witryna internetowa wyświetli cenę w dolarach dla mieszkańców Stanów Zjednoczonych. W zależności od tego, gdzie znajdują się Twoje serwery i docelowa witryna, z której chcesz wyodrębnić dane, możesz potrzebować serwerów proxy w innym kraju.

Ponadto posiadanie dużej puli serwerów proxy jest koniecznością, aby uniknąć blokowania przez stronę internetową innej firmy. Istnieją dwa rodzaje serwerów proxy, adresy IP centrów danych ipełnomocnicy mieszkaniowi. Niektóre strony internetowe całkowicie blokują adresy IP centrów danych, w takim przypadku będziesz musiał użyć domowego adresu IP, aby uzyskać dostęp do danych. Następnie istnieje hybrydowy typ serwerów proxy, który łączy najlepsze z dwóch światów:proxy ISP

Bezgłowe przeglądarkito kolejna ważna warstwa w nowoczesnym skrobaniu sieci. Istnieje coraz więcej stron internetowych zbudowanych przy użyciu błyszczących frameworków front-end, takich jak Vue.js, Angular.js, React.js. Te frameworki JavaScript używają zaplecza API do pobierania danych i renderowania po stronie klienta w celu narysowania DOM (Document Object Model). Jeśli korzystasz ze zwykłego klienta HTTP, który nie renderuje kodu Javascript, strona, którą otrzymasz, będzie prawie pusta. To jeden z powodów, dla których przeglądarki bezgłowe są tak ważne.

Inną zaletą korzystania z przeglądarki bezgłowej jest to, że wiele stron internetowych używa „wyzwania JavaScript”, aby wykryć, czy klient HTTP jest botem, czy prawdziwym użytkownikiem. Korzystając z przeglądarki bezgłowej, istnieje większe prawdopodobieństwo, że ominiesz te automatyczne testy i uzyskasz docelową stronę HTML.

Trzy najczęściej używane interfejsy API do uruchamiania przeglądarek bezgłowych to Selenium, Puppeteer idramat. Selenium jest najstarszym, ma biblioteki w prawie wszystkich językach programowania i obsługuje wszystkie główne przeglądarki.

Puppeteer obsługuje tylko NodeJS, jest utrzymywany przez zespół Google i obsługuje Chrome (obsługa Firefoksa pojawi się później, w tej chwili jest eksperymentalna).

Playwright jest najnowszym odtwarzaczem, jest utrzymywany przez firmę Microsoft i obsługuje wszystkie główne przeglądarki.

Zasady ekstrakcjito logika, której użyjesz do wybrania elementu HTML i wyodrębnienia danych. Dwa najłatwiejsze sposoby wybierania elementów HTML na stronie toSelektory XPathISelektory CSS.

Na tym generalnie polega główna logika twojego potoku skrobania sieci. To tam Twoi programiści najczęściej spędzają czas. Witryny często aktualizują swój kod HTML (zwłaszcza startupy), więc często będziesz musiał zaktualizować te selektory XPath i CSS.

Planowanie zadańto kolejny ważny element. Możesz monitorować ceny codziennie lub co tydzień. Inną zaletą korzystania z systemu planowania zadań jest możliwość ponawiania nieudanych zadań. Obsługa błędów jest niezwykle ważna w web scrapingu. Może się zdarzyć wiele błędów, na które nie masz wpływu. Rozważ następujące:

  • Kod HTML na stronie uległ zmianie i naruszył reguły wyodrębniania
  • Strona docelowa może nie działać.
  • Możliwe jest również, że serwer proxy działa wolno lub nie działa.
  • Żądanie może zostać zablokowane.

Planowanie zadań i obsługa błędów mogą być wykonywane przy użyciu dowolnej formy brokera komunikatów i bibliotek planowania zadań, takich jak Sidekiq w Ruby lubRQw Pythonie.

Składowanie: Po wyodrębnieniu danych ze strony internetowej zazwyczaj chcesz je gdzieś zapisać. Zeskrobane dane są zazwyczaj przechowywane w następujących popularnych formatach:

  • JSON
  • CSV
  • XML
  • Do bazy danych SQL lub noSQL

MonitorowanieTwój potok skrobania sieci jest bardzo ważny. Jak wspomniano wcześniej, podczas pobierania danych z sieci na dużą skalę może wystąpić wiele problemów. Musisz upewnić się, że skrobaki się nie zepsują, że serwery proxy działają poprawnie. Splunk to świetne narzędzie do analizy logów, konfiguracji dashboardu i alertów. Istnieją również alternatywy typu open source, takie jak Kibana i cały stos ELK.

Zeskrobać

Scrapy to framework do skrobania stron w Pythonie o otwartym kodzie źródłowym. Naszym zdaniem jest to niesamowity punkt wyjścia do wydobywania danych strukturalnych ze stron internetowych na dużą skalę. Rozwiązuje wiele typowych problemów w bardzo elegancki sposób:

  • Współbieżność (Scraping wielu stron w tym samym czasie)
  • Automatyczne ograniczanie, aby uniknąć zakłócania pracy stron internetowych osób trzecich, z których pobierasz dane
  • Elastyczny format eksportu, CSV, JSON, XML i backend do przechowywania (Amazon S3, FTP, chmura Google...)
  • Automatyczne indeksowanie
  • Wbudowany potok mediów dopobierz obrazyi aktywa

Jeśli chcesz zagłębić się w Scrapy, napisaliśmy obszerny przewodnikskrobanie sieci za pomocą Scrapy.

Skrobanie Pszczoły

Jak wyodrębnić dane ze strony internetowej? Kompletny przewodnik do pobierania danych z dowolnej witryny (2)


Skrobanie Pszczołymoże pomóc zarówno w zarządzaniu proxy, jak i przeglądarkach bezgłowych. To doskonałe rozwiązanie, gdy nie chcesz mieć do czynienia z żadnym z nich.

Istnieje wiele problemów z uruchamianiem przeglądarek healdess w środowisku produkcyjnym. Łatwo jest uruchomić jedną instancję Selenium lub Puppeteer na swoim laptopie, ale uruchamianie dziesiątek w środowisku produkcyjnym to inna dziedzina. Po pierwsze, potrzebujesz potężnych serwerów. Na przykład Headless Chrome wymaga co najmniej 1 GB pamięci RAM i jednego rdzenia procesora do płynnego działania.

Chcesz uruchomić równolegle 50 bezobsługowych instancji Chrome? To 50 GB pamięci RAM i 50 rdzeni procesora. Następnie potrzebujesz albo jednego gigantycznego serwera typu bare-metal, który kosztuje tysiące dolarów miesięcznie, albo wielu małych serwerów.

Do tego potrzebny będzie system równoważenia obciążenia, monitorowanie i prawdopodobnie umieszczenie tego wszystkiego w kontenerach dokerów. To dużo pracy i jest to jeden z problemów, które rozwiązujemy w ScrapingBee. Zamiast robić wszystkie powyższe, możesz użyć ScrapingBee z prostym wywołaniem API.

Innym ulubionym miejscem ScrapingBee jest zarządzanie proxy. Wiele witryn internetowych stosuje na swoich stronach limity szybkości adresów IP. Załóżmy, że witryna zezwala na 10 żądań dziennie na adres IP. Jeśli chcesz wykonać 100 000 żądań w ciągu jednego dnia, będziesz potrzebować 10 000 unikalnych serwerów proxy. To dużo. Ogólnie rzecz biorąc, dostawcy proxy pobierają opłatę w wysokości od jednego do trzech dolarów za unikalny adres IP miesięcznie. Rachunek może wybuchnąć bardzo szybko.

Dzięki ScrapingBee masz dostęp do ogromnej puli proxy za ułamek kosztów.

Pobieranie danych z sieci bez kodu / low-code

W ScrapingBee kochamy kod! Ale co, jeśli nie masz programistów w swojej firmie? Wciąż istnieją rozwiązania! Niektóre rozwiązania są wolne od kodu, inne wymagają niewielkiej ilości kodu (API). Jest to szczególnie skuteczne, jeśli potrzebujesz danych do jednorazowego projektu, a nie cyklicznie.

Brokerzy danych

Jeśli potrzebujesz dużej ilości danych z sieci do określonego przypadku użycia, możesz sprawdzić, czy zestaw danych już nie istnieje. Załóżmy na przykład, że chcesz wyświetlić listę wszystkich witryn na świecie korzystających z określonej technologii, takiej jak Shopify. Przeszukiwanie całej sieci lub katalogu (jeśli taki katalog istnieje) w celu uzyskania tej listy byłoby ogromnym zadaniem. Możesz łatwo uzyskać tę listę, kupując ją od brokerów danych, takich jakzbudowany z.com

Interfejsy API specyficzne dla witryny

Jeśli potrzebujesz pobrać dane z określonej witryny (w przeciwieństwie do wielu różnych witryn), może istnieć istniejący interfejs API, którego możesz użyć. Na przykład w ScrapingBee mamy dedykowanyInterfejs API wyszukiwania Google. Zaletą korzystania z interfejsu API jest to, że nie musisz zajmować się konserwacją, gdy witryna docelowa aktualizuje swój kod HTML. Co oznacza brak monitorowania po Twojej stronie, brak aktualizacji reguł ekstrakcji i nie musisz mieć do czynienia z ciągłym blokowaniem serwerów proxy.

Upewnij się również, że witryna docelowa nie oferuje publicznego ani prywatnego interfejsu API umożliwiającego dostęp do danych, jest to ogólnie opłacalne i spędzisz mniej czasu niż samodzielne pobieranie danych.

Rozszerzenie przeglądarki internetowej

Rozszerzenie przeglądarki internetowej może być skutecznym sposobem wydobywania danych ze strony internetowej. Najlepszym rozwiązaniem jest wyodrębnienie dobrze sformatowanych danych, na przykład tabeli lub listy elementów na stronie. Niektóre rozszerzenia, takie jak DataMiner, oferują gotowe do użycia przepisy dotyczące scrapingu dla popularnych witryn internetowych, takich jak Amazon, Ebay lub Wallmart.

Narzędzia do skrobania sieci

Narzędzia do skrobania siecitakie jak ScreamingFrog lub ScrapeBox świetnie nadają się do wydobywania danych z sieci, a konkretnie z Google. W zależności od przypadku użycia, takiego jak SEO, badanie słów kluczowych lub znajdowanie uszkodzonych linków, może to być najłatwiejsze w użyciu.

Jak wyodrębnić dane ze strony internetowej? Kompletny przewodnik do pobierania danych z dowolnej witryny (3)


Inne oprogramowanie, takie jak ParseHub, jest również świetne dla osób bez znajomości kodowania. Są to aplikacje desktopowe, dzięki którym wydobywanie danych z sieci jest łatwym zadaniem. Tworzysz instrukcje w aplikacji, takie jak wybieranie potrzebnego elementu, przewijanie itp.

Te programy mają jednak ograniczenia, a krzywa uczenia się jest stroma.

Zlecaj usługi web scraping agencjom lub freelancerom

Istnieje wiele agencji zajmujących się skrobaniem stron internetowych i freelancerów, którzy mogą pomóc w wydobyciu danych z sieci. Outsourcing może być świetny, gdy problemu nie można rozwiązać za pomocą rozwiązania bez kodu.

Wolni strzelcysą najbardziej elastycznym rozwiązaniem, ponieważ mogą dostosować swój kod do dowolnej witryny. Format wyjściowy może być dowolny: CSV, JSON, zrzucanie danych do bazy danych SQL...

Najprostszym sposobem na znalezienie freelancerów jest kontynuowanieUpwork.comlub Toptal(https://www.toptal.com/)

Agencje zajmujące się skrobaniem stron internetowychto kolejne świetne rozwiązanie, szczególnie w przypadku zgarniania na dużą skalę. Jeśli potrzebujesz rozwijać i utrzymywać scrapery dla wielu stron internetowych, prawdopodobnie będziesz potrzebować zespołu, jeden freelancer nie będzie w stanie obsłużyć wszystkiego.

Końcowe przemyślenia

To był długi post na blogu, teraz powinieneś mieć dobrą wiedzę na temat różnych sposobów pobierania danych z sieci.

Jeśli nadal nie jesteś pewien, co wybrać, pamiętaj, że wiele rzeczy, które omówiliśmy na tej stronie, można łatwo i szybko przetestować.

Większość oprogramowania, o którym mówiliśmy, ma okres próbny. Jeśli zdecydujesz się zbudować własne skrobaki i użyć ScrapingBee, możesz również szybko zacząć.

Jeśli chcesz dowiedzieć się więcej o tworzeniu własnych skrobaków za pomocą kodu, mogą Cię zainteresować te przewodniki:

  • Skrobanie stron internetowych za pomocą Pythona
  • Skrobanie stron internetowych za pomocą Javascript
  • Budowa Cralwera w Pythonie

Czy coś przegapiliśmy? Pinguj nasŚwiergot

Miłego skrobania!

Jak wyodrębnić dane ze strony internetowej? Kompletny przewodnik do pobierania danych z dowolnej witryny (2024)
Top Articles
Latest Posts
Article information

Author: Eusebia Nader

Last Updated:

Views: 6236

Rating: 5 / 5 (80 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Eusebia Nader

Birthday: 1994-11-11

Address: Apt. 721 977 Ebert Meadows, Jereville, GA 73618-6603

Phone: +2316203969400

Job: International Farming Consultant

Hobby: Reading, Photography, Shooting, Singing, Magic, Kayaking, Mushroom hunting

Introduction: My name is Eusebia Nader, I am a encouraging, brainy, lively, nice, famous, healthy, clever person who loves writing and wants to share my knowledge and understanding with you.