Semalt Expert selgitab, kuidas AJAX-i veebisaiti Pythoni abil kraapida

Veebi kraapimine on meetod, mis kasutab tarkvara kasutamist veebilehelt andmete ekstraheerimiseks. Pythoni abil veebi kraapimiseks on palju tööriistu, mõned neist on; Taevas, teraapia, taotlused ja ilus supp. Kuid enamikku neist tööriistadest piirab asjaolu, et nad hangivad ainult statsionaarset HTML-i, mis tuleb serverist, mitte JavaScripti poolt pakutavat dünaamilist osa.

Selle probleemi lahendamiseks on siiski mõned tehnikad:

1. Automatiseeritud brauserid

Võite kasutada automatiseeritud brausereid, näiteks Seleeni või Splash, mis on täielikud brauserid, mis töötavad peata. Nende seadistamine võib siiski olla üsna keeruline ja seetõttu keskendume allpool toodud teisele võimalusele.

2. AJAX-kõnede pealtkuulamine

See hõlmab AJAX-kõnede pealtkuulamise katset lehelt ja nende uuesti esitamist või reprodutseerimist.

Selles artiklis keskendume sellele, kuidas saada AJAX-kõnesid ja neid korrata, kasutades päringute teeki ja Google Chrome'i brauserit. Ehkki raamid, nagu näiteks Scrap, võivad teile kraapimise osas pakkuda tõhusama lahenduse, pole see kõikidel juhtudel nõutav. AJAX-kõnesid tehakse enamasti API vastu, mis tagastab JSON-objekti, mida päringute teek hõlpsalt haldab.

Esimene asi, mida peate teadma, on see, et proovida AJAX-i kõnet korrata nagu dokumenteerimata API kasutamist. Seetõttu peate vaatama kõiki kõnede lehti. Võite minna saidile, mängida sellega mõnda aega ja vaadata, kuidas osa teavet renderdatakse. Kui olete mängimise lõpetanud, tulge tagasi ja alustage kraapimist.

Enne kui üksikasjadesse süveneme, mõelgem kõigepealt, kuidas leht töötab. Kui külastate kaupluste lehte osariigi kaupa, valige suvaline osariik ja leht kuvab poe kohta teavet. Iga kord, kui valite mõne osariigi, pakub veebisait vanu asendama uusi kauplusi. Selle saavutamiseks kasutatakse AJAX-i helistamist serverisse, kes küsib teavet. Meie eesmärk on nüüd see kõne kinni pidada ja seda uuesti korrata.

Selleks peate vaid avama lohistatud Chrome'i brauseri DevTools ja minema XHR-i alajaotusesse. XHR on liides, mis täidab HTTP ja HTTPS päringuid. Seega kuvatakse siin AJAX-i taotlused. Kui teete topeltklõpsu AJAX-i kõnel, leiate kauplustest palju teavet. Samuti saate taotluste eelvaadet vaadata.

Pange tähele, et serverisse saadetakse palju andmeid. Kuid ärge muretsege, kuna kõik see pole vajalik. Vajalike andmete nägemiseks võite avada konsooli ja täita veebisaidile mitmesuguseid postitaotlusi. Nüüd, kui teate, kuidas leht töötab, ja olete AJAX-kõne dešifreerinud, saate oma skreeperi kirjutada.

Võimalik, et küsite: "miks mitte kasutada automatiseeritud brauserit?" Lahendus on lihtne; proovige alati AJAX-kõnesid korrata, enne kui alustate midagi palju raskemat ja keerulisemat, näiteks automatiseeritud brauser. See on lihtsam ja kergem.

png

mass gmail