Expert Semalt explică cum să scrapezi un site web AJAX folosind Python

Scraping-ul web este o metodă care utilizează utilizarea de software pentru a extrage date dintr-o pagină web. Există o mulțime de instrumente pe care să le folosești pentru răzuirea webului cu python, unele dintre ele fiind; Sky, Scrapy, Cereri și supă frumoasă. Cu toate acestea, majoritatea acestor instrumente sunt limitate de faptul că preia doar HTML static care provine de la server și nu partea dinamică redată de JavaScript.

Cu toate acestea, există câteva tehnici prin care această problemă poate fi depășită:

1. Navigatoare automate

Puteți utiliza browsere automate, cum ar fi Selenium sau Splash, care sunt browsere complete care rulează fără cap. Totuși, setarea lor poate fi destul de complexă, așa că ne vom concentra pe a doua opțiune de mai jos.

2. Interceptați apelurile AJAX

Aceasta implică încercarea de a intercepta apelurile AJAX de pe pagină și încercarea de a le reda sau reproduce.

În acest articol, ne vom concentra asupra modului de a capta apeluri AJAX și de a le reda utilizând Biblioteca de solicitări și browserul Google Chrome. Deși cadre precum Scrapy vă pot oferi o soluție mai eficientă atunci când vine vorba de răzuire, nu este necesară pentru toate cazurile. Apelurile AJAX sunt efectuate în cea mai mare parte împotriva unei API care va returna un obiect JSON pe care biblioteca de solicitări îl poate gestiona cu ușurință.

Primul lucru pe care trebuie să-l știți este faptul că a încerca să redau un apel AJAX este ca și cum ai folosi o API fără documente. Prin urmare, trebuie să vă uitați la toate apelurile pe care le fac paginile. Puteți merge pe site, să vă jucați cu el și să vedeți cum sunt redate unele informații. După ce ați terminat de jucat, reveniți și începeți să zgâriați.

Înainte de a intra în detalii, să înțelegem mai întâi cum funcționează pagina. Dacă vizitați o pagină de magazine după stat, selectați orice stare, iar pagina va oferi informații despre magazin. De fiecare dată când selectați un stat, site-ul web oferă magazine noi pentru a le înlocui pe cele vechi. Acest lucru se realizează prin utilizarea și apelul AJAX către un server care solicită informațiile. Intenția noastră este acum să surprindem acest apel și să-l redăm.

Pentru a face acest lucru, tot ce trebuie să faceți este să deschideți consola browserul DevTools și să accesați subsecțiunea XHR. XHR este o interfață care efectuează solicitări HTTP și HTTPS. Astfel, cererile AJAX vor fi afișate aici. Când faceți dublu clic pe apelul AJAX, veți găsi o mulțime de informații despre magazine. De asemenea, puteți previzualiza solicitările.

Veți observa că o mulțime de date sunt trimise către server. Cu toate acestea, nu vă faceți griji, deoarece nu toate sunt necesare. Pentru a vedea ce date aveți nevoie, puteți deschide o consolă și puteți efectua diverse solicitări de post pe site-ul web. Acum că știți cum funcționează pagina și ați descifrat apelul AJAX, puteți să vă scrieți răzuitorul.

Este posibil să vă întrebați: „de ce nu folosiți un browser automat?” Soluția este simplă; încercați întotdeauna să redați apelurile AJAX înainte de a începe ceva mult mai greu și mai complicat, cum ar fi un browser automat. Este mai simplu și mai ușor.

png

mass gmail