Semaltov strokovnjak razloži, kako strgati spletno mesto AJAX s pomočjo Pythona

Spletno strganje je metoda, ki uporablja uporabo programske opreme za črpanje podatkov s spletne strani. Obstaja veliko orodij, ki se uporabljajo za strganje po spletu s python-om, nekatera so; Nebo, Scrap, Zahteve in Lepa juha. Vendar je večina teh orodij omejena s tem, da pridobijo le statični HTML, ki prihaja s strežnika, in ne dinamični del, ki ga ustvari JavaScript.

Vendar pa obstaja nekaj tehnik, s katerimi je mogoče premagati to težavo:

1. Samodejni brskalniki

Uporabite lahko avtomatizirane brskalnike, kot sta Selenium ali Splash, ki so polni brskalniki, ki delujejo brez glave. Vendar je njihova postavitev lahko precej zapletena, zato se bomo osredotočili na drugo možnost spodaj.

2. Prestrezanje klicev AJAX

To vključuje poskus prestrezanja klicev AJAX s strani in jih poskuša predvajati ali reproducirati.

V tem članku se bomo osredotočili na to, kako ujeti klice AJAX in jih predvajati s pomočjo knjižnice zahtevkov in brskalnika Google Chrome. Čeprav vam lahko okvirji, kot je Scrap, nudijo učinkovitejšo rešitev, ko gre za strganje, to ni potrebno za vse primere. AJAX klici se večinoma izvajajo prek API-ja, ki bo vrnil objekt JSON, s katerim knjižnica Zahteve zlahka obravnava.

Prva stvar, ki jo morate vedeti, je, da je poskus ponovnega klica AJAX podoben uporabi nedokumentiranega API-ja. Zato morate pogledati vse klice na straneh. Lahko obiščete spletno mesto, se z njim igrate nekaj časa in si ogledate, kako se prikazujejo nekatere informacije. Po končanem igranju se vrnite in začnite strgati.

Preden se podrobneje seznanimo, najprej razumemo, kako stran deluje. Če obiščete stran trgovin po državi, izberite katero koli državo in stran bo prikazal podatke o trgovini. Vsakič, ko izberete stanje, spletno mesto ustvari nove trgovine, da nadomesti stare. To dosežemo z uporabo AJAX in pokliče strežnik, ki zahteva informacije. Naš namen je zdaj ujeti ta klic in ga ponoviti.

Če želite to narediti, morate samo odpreti brskalnik Chrome utrditi DevTools in iti v pododdelek XHR. XHR je vmesnik, ki izvaja zahteve HTTP in HTTPS. Tako bodo tukaj prikazane zahteve AJAX. Ko dvokliknete klic AJAX, boste v trgovinah našli veliko informacij. Zahteve si lahko tudi ogledate.

Opazili boste, da se strežniku pošlje veliko podatkov. Vendar ne skrbite, saj ni potrebno vse. Če želite videti, katere podatke potrebujete, lahko odprete konzolo in izvedete različne zahteve po pošti na spletnem mestu. Zdaj, ko veste, kako stran deluje in ste dešifrirali klic AJAX, lahko napišete svoj strgalec.

Morda se boste vprašali, "zakaj ne bi uporabil samodejnega brskalnika?" Rešitev je preprosta; vedno poskusite predvajati klice AJAX, preden se lotite nečesa veliko težjega in zapletenejšega, kot je na primer avtomatski brskalnik. Je enostavnejši in lažji.

png

mass gmail