Recenzja semaltu: skrobanie stron internetowych dla zabawy i zysku

Możesz zeskrobać witrynę bez potrzeby używania interfejsu API. Chociaż właściciele witryn agresywnie powstrzymują skrobanie, mniej dbają o interfejsy API i zamiast tego kładą większy nacisk na witryny. Fakt, że wiele witryn nie chroni odpowiednio przed automatycznym dostępem, stwarza pole manewru dla zgarniaczy. Kilka prostych obejść pomoże ci zebrać potrzebne dane.

Pierwsze kroki ze skrobaniem

Skrobanie wymaga zrozumienia struktury potrzebnych danych i ich dostępności. Zaczyna się to od pobrania danych. Znajdź adres URL, który zwraca potrzebne informacje. Przejrzyj stronę internetową i sprawdź, jak zmieniają się adresy URL podczas przeglądania różnych sekcji.

Możesz też wyszukać kilka terminów w witrynie i sprawdzić, jak zmieniają się adresy URL w zależności od wyszukiwanego hasła. Powinieneś zobaczyć parametr GET, taki jak q =, który zmienia się przy każdym wyszukiwaniu nowego terminu. Zachowaj parametry GET niezbędne do załadowania danych i usuń pozostałe.

Jak radzić sobie z paginacją

Paginacja uniemożliwia dostęp do wszystkich potrzebnych danych naraz. Po kliknięciu strony 2 parametr offset = jest dodawany do adresu URL. Jest to albo liczba elementów na stronie, albo numer strony. Zwiększ ten numer na każdej stronie danych.

W przypadku witryn korzystających z AJAX, otwórz kartę sieciową w Firebug lub Inspector. Sprawdź żądania XHR, zidentyfikuj i skup się na tych, które pobierają twoje dane.

Uzyskaj dane ze znaczników strony

Osiąga się to za pomocą haków CSS. Kliknij konkretną sekcję danych prawym przyciskiem myszy. Pociągnij Firebuga lub Inspektora i powiększ drzewo DOM, aby uzyskać skrajne <div>, które otacza pojedynczy element. Po uzyskaniu prawidłowego węzła z drzewa DOM przejrzyj źródło strony, aby upewnić się, że elementy są dostępne w surowym HTML.

Aby pomyślnie zeskrobać witrynę, potrzebujesz biblioteki parsującej HTML, która czyta w HTML i zamienia ją w obiekt, który możesz iterować, dopóki nie dostaniesz tego, czego potrzebujesz. Jeśli Twoja biblioteka HTTP wymaga ustawienia plików cookie lub nagłówków, przejrzyj witrynę w przeglądarce internetowej i pobierz nagłówki z przeglądarki. Umieść je w słowniku i prześlij wraz z prośbą.

Kiedy potrzebujesz loginu do zdrapania

Jeśli musisz utworzyć konto i zalogować się, aby uzyskać potrzebne dane, musisz mieć dobrą bibliotekę HTTP do obsługi logowania. Logowanie do skrobaka naraża cię na strony osób trzecich.

Jeśli limit szybkości usługi sieciowej zależy od adresu IP, ustaw kod, który trafi do usługi sieciowej, na kod JavaScript po stronie klienta. Następnie przekaż wyniki z powrotem do serwera od każdego klienta. Wygląda na to, że wyniki pochodzą z tak wielu miejsc i żadne z nich nie przekroczy limitu prędkości.

Źle sformułowane znaczniki

Niektóre znaczniki mogą być trudne do sprawdzenia. W takich przypadkach należy zagłębić się w parser HTML w celu uzyskania ustawień tolerancji błędów. Alternatywnie, potraktuj cały dokument HTML jako długi ciąg i podziel ciąg znaków.

Podczas gdy witryna może zgarniać wszelkiego rodzaju dane w sieci, niektóre strony używają oprogramowania, aby zatrzymać skrobanie, a inne zabraniają skrobania sieci . Takie strony mogą Cię pozwać, a nawet zostać uwięzione za zbieranie ich danych. Bądź więc sprytny we wszystkich operacjach skrobania Internetu i rób to bezpiecznie.