Semalt Expert wyjaśnia, jak zeskrobać witrynę AJAX za pomocą Pythona

Pozyskiwanie danych z Internetu to metoda wykorzystująca oprogramowanie do wydobywania danych ze strony internetowej. Istnieje wiele narzędzi do skrobania sieci za pomocą Pythona, niektóre z nich; Niebo, złom, prośby i piękna zupa. Jednak większość tych narzędzi jest ograniczona faktem, że pobierają one tylko statyczny kod HTML pochodzący z serwera, a nie część dynamiczną renderowaną przez JavaScript.

Istnieją jednak techniki, dzięki którym można rozwiązać ten problem:

1. Zautomatyzowane przeglądarki

Możesz korzystać ze zautomatyzowanych przeglądarek, takich jak Selenium lub Splash, które są pełnymi przeglądarkami działającymi bez głowy. Jednak ich konfiguracja może być dość złożona, dlatego skupimy się na drugiej opcji poniżej.

2. Przechwyć połączenia AJAX

Polega to na próbie przechwycenia wywołań AJAX ze strony i próbie ich odtworzenia lub odtworzenia.

W tym artykule skupimy się na tym, jak łapać połączenia AJAX i odtwarzać je, korzystając z biblioteki żądań i przeglądarki Google Chrome. Chociaż frameworki takie jak Scrapy mogą zapewnić bardziej wydajne rozwiązanie, jeśli chodzi o skrobanie, nie jest ono wymagane we wszystkich przypadkach. Wywołania AJAX są najczęściej wykonywane przy użyciu interfejsu API, który zwróci obiekt JSON, który biblioteka żądań może z łatwością obsłużyć.

Pierwszą rzeczą, którą musisz wiedzieć, jest to, że próba odtworzenia wywołania AJAX jest jak użycie nieudokumentowanego interfejsu API. Dlatego musisz spojrzeć na wszystkie połączenia wykonane przez strony. Możesz przejść do strony, pobawić się nią chwilę i zobaczyć, jak renderowane są niektóre informacje. Po zakończeniu gry wróć i zacznij zgarniać.

Zanim przejdziemy do szczegółów, najpierw zrozummy, jak działa strona. Jeśli odwiedzasz stronę sklepu według stanu, wybierz dowolny stan, a strona wyświetli informacje o sklepie. Za każdym razem, gdy wybierzesz stan, witryna renderuje nowe sklepy, zastępując stare. Osiąga się to poprzez użycie i wywołanie AJAX do serwera z prośbą o informacje. Naszym celem jest teraz złapanie tego połączenia i odtworzenie go.

Aby to zrobić, wystarczy otworzyć konsolę DevTools w przeglądarce Chrome i przejść do podsekcji XHR. XHR to interfejs, który wykonuje żądania HTTP i HTTPS. W ten sposób zostaną wyświetlone tutaj żądania AJAX. Po dwukrotnym kliknięciu wywołania AJAX znajdziesz wiele informacji o sklepach. Możesz także wyświetlić podgląd żądań.

Zauważysz, że wiele danych jest wysyłanych na serwer. Jednak nie martw się, ponieważ nie wszystko jest wymagane. Aby zobaczyć potrzebne dane, możesz otworzyć konsolę i wykonać różne żądania postów na stronie internetowej. Teraz, gdy wiesz już, jak działa strona i odszyfrowałeś wywołanie AJAX, możesz napisać skrobak.

Być może pytasz: „dlaczego nie skorzystać z automatycznej przeglądarki?” Rozwiązanie jest proste; zawsze staraj się odtwarzać wywołania AJAX przed rozpoczęciem czegoś znacznie cięższego i bardziej skomplikowanego, na przykład zautomatyzowanej przeglądarki. Jest prostszy i lżejszy.

png

mass gmail