Semaltekspert forklarer hvordan du skraper et AJAX-nettsted ved hjelp av Python

Webskraping er en metode som bruker bruk av programvare for å trekke ut data fra en webside. Det er mange verktøy du kan bruke til å skrape nettet med python, noen av dem er; Himmel, skrapete, forespørsler og vakker suppe. Imidlertid er de fleste av disse verktøyene begrenset av det faktum at de bare henter statisk HTML som kommer fra serveren og ikke den dynamiske delen som er gjengitt av JavaScript.

Imidlertid er det noen teknikker der dette problemet kan løses:

1. Automatiserte nettlesere

Du kan benytte deg av automatiserte nettlesere som Selenium eller Splash, som er fulle nettlesere som kjører hodeløs. Imidlertid kan det være ganske komplekst å sette dem opp, og vi vil derfor fokusere på det andre alternativet nedenfor.

2. Avskjær AJAX-samtaler

Dette innebærer å prøve å avskjære AJAX-anropene fra siden og prøve å spille av eller reprodusere dem på nytt.

I denne artikkelen vil vi fokusere på hvordan du kan fange AJAX-anrop og spille dem på nytt ved å bruke forespørselbiblioteket og Google Chrome-nettleseren. Selv om rammer som Scrapy kan gi deg en mer effektiv løsning når det gjelder skraping, er det ikke nødvendig i alle tilfeller. AJAX-samtaler utføres for det meste mot et API som vil returnere et JSON-objekt som Requests-biblioteket enkelt kan håndtere.

Det første du trenger å vite er at å prøve å spille av et AJAX-anrop på nytt, er som å bruke et udokumentert API. Derfor må du se på alle anrop sidene foretar. Du kan gå til siden, leke med den en stund og se hvordan litt informasjon blir gitt. Når du er ferdig med å spille, kom tilbake og begynn å skrape.

La oss først forstå hvordan siden fungerer før vi kommer inn på detaljene. Hvis du besøker en butikk side etter stat, velger du hvilken som helst tilstand, og siden vil gi informasjon om butikken. Hver gang du velger en stat, gjengir nettstedet nye butikker for å erstatte de gamle. Dette oppnås ved å bruke og AJAX ringe til en server som ber om informasjonen. Intensjonen vår nå er å fange den samtalen og spille den på nytt.

For å gjøre dette, alt du trenger å gjøre er å åpne Chrome-nettleseren DevTools trøstet og gå til XHR-underavsnittet. XHR er et grensesnitt som utfører HTTP og HTTPS forespørsler. Dermed vises AJAX-forespørslene her. Når du dobbeltklikker på AJAX-samtalen, vil du finne mye informasjon om butikkene. Du kan også forhåndsvise forespørslene.

Du vil merke at mye data blir sendt til serveren. Vær imidlertid ikke bekymret, siden ikke alt det er nødvendig. For å se hvilke data du trenger, kan du åpne en konsoll og utføre forskjellige innleggsforespørsler på nettstedet. Nå som du vet hvordan siden fungerer og har dechifisert AJAX-anropet, kan du skrive skraperen din.

Du spør kanskje: 'hvorfor ikke bruke en automatisert nettleser?' Løsningen er enkel; prøv alltid å spille av AJAX-anropene før du tar fatt på noe mye mer tungt og komplisert, for eksempel en automatisert nettleser. Det er enklere og lettere.

png

mass gmail