Експертът на Semalt обяснява как да изстържете уебсайт AJAX с помощта на Python

Премахване на уеб е метод, който използва използването на софтуер за извличане на данни от уеб страница. Има много инструменти, които да използвате за изстъргване на мрежата с python, някои от тях са; Небе, скрап, заявки и красива супа. Въпреки това, повечето от тези инструменти са ограничени от факта, че те извличат само статичен HTML, който идва от сървъра, а не динамичната част, предоставена от JavaScript.

Въпреки това, има някои техники, при които този проблем може да бъде преодолян:

1. Автоматизирани браузъри

Можете да използвате автоматизирани браузъри като Selenium или Splash, които са пълноценни браузъри, които работят без глава. Настройката им обаче може да бъде доста сложна и затова ще се съсредоточим върху втория вариант по-долу.

2. Прихващане на AJAX разговори

Това включва опит за прихващане на AJAX обажданията от страницата и опит за преиграване или възпроизвеждане.

В тази статия ще се съсредоточим как да улавяме AJAX разговори и да ги преиграваме, като използваме библиотеката на заявките и браузъра Google Chrome. Въпреки че рамки като Scrap може да ви осигурят по-ефективно решение, що се отнася до изстъргването, то не е необходимо за всички случаи. AJAX разговорите се извършват най-вече срещу API, който ще върне JSON обект, с който библиотеката с заявки може лесно да се справи.

Първото нещо, което трябва да знаете, е, че да се опитвате да възпроизведете AJAX разговор е като да използвате недокументиран API. Затова трябва да разгледате всички обаждания, които правят страниците. Можете да отидете на сайта, да поиграете с него известно време и да видите как се предава някаква информация. След като приключите с играта, върнете се и започнете да изстъргвате.

Преди да навлезем в подробностите, нека първо разберем как работи страницата. Ако посетите страницата на магазините по щат, изберете което и да е състояние и страницата ще предостави информация за магазина. Всеки път, когато изберете състояние, уебсайтът прави нови магазини, които да заменят старите. Това се постига чрез използване и AJAX повикване до сървър, който иска информация. Нашето намерение сега е да хванем този разговор и да го преиграем.

За да направите това, всичко, което трябва да направите, е да отворите браузъра Chrome, конзолиран DevTools, и да отидете на подраздела XHR. XHR е интерфейс, който изпълнява HTTP и HTTPS заявки. По този начин заявките на AJAX ще бъдат показани тук. Когато щракнете двукратно върху повикването AJAX, ще намерите много информация по магазините. Можете също да прегледате заявките.

Ще отбележите, че много данни се изпращат до сървъра. Въпреки това, не се притеснявайте, тъй като не се изисква всичко. За да видите какви данни ви трябват, можете да отворите конзола и да извършите различни публикации на уебсайта. След като знаете как работи страницата и сте дешифрирали повикването AJAX, можете да напишете своя скрепер.

Може би се питате „защо да не използвате автоматичен браузър?“ Решението е просто; винаги се опитвайте да преигравате AJAX разговорите, преди да се впуснете в нещо много по-тежко и сложно, като например автоматичен браузър. Той е по-прост и лек.

PNG

mass gmail