Semalt Review: Web Scraping For Fun & Profit

Du kan skrape nettsteder uten behov for et API. Selv om nettstedseiere er aggressive over å slutte å skrape, bryr de seg mindre om API-er og legger i stedet mer vekt på nettsteder. Fakta som mange nettsteder ikke i tilstrekkelig grad beskytter mot automatisk tilgang skaper et spillerom for skrapere. Noen enkle løsninger vil hjelpe deg med å høste dataene du trenger.

Komme i gang med skraping

Skraping krever forståelse av strukturen til dataene du trenger og tilgjengeligheten. Dette starter med å hente dataene dine. Finn nettadressen som returnerer informasjonen du trenger. Bla gjennom nettstedet og sjekk hvordan nettadressene endres når du navigerer gjennom forskjellige seksjoner.

Alternativt kan du søke i flere ord på nettstedet og sjekke hvordan nettadressene endres basert på søkeordet ditt. Du bør se en GET-parameter som q = som endres når du søker i et nytt begrep. Behold GET-parametrene som er nødvendige for å laste inn dataene dine, og fjern de andre.

Hvordan håndtere paginering

Paginering forhindrer deg i å få tilgang til alle dataene du trenger samtidig. Når du klikker på side 2, legges en offset = parameter til i URLen. Dette er enten antall elementer på en side eller sidenummer. Øk dette tallet på hver side med dataene dine.

For nettsteder som bruker AJAX, trekk opp nettverksfanen i Firebug eller Inspector. Sjekk XHR-forespørslene, identifiser og fokuser på de som henter inn dataene dine.

Få data fra sidemarkering

Dette oppnås ved hjelp av CSS-kroker. Høyreklikk på en bestemt del av dataene dine. Trekk Firebug eller Inspector og zoome gjennom DOM-treet for å få den ytterste <div> som pakker inn et enkelt element. Når du har riktig node fra DOM-treet, kan du se sidekilden for å sikre at elementene dine er tilgjengelige i rå HTML.

For å skrape nettstedet vellykket, trenger du et HTML-parsingsbibliotek som leser i HTML og gjør det til et objekt som du kan iterere til du får det du trenger. Hvis HTTP-biblioteket krever at du angir noen informasjonskapsler eller overskrifter, kan du bla gjennom nettstedet i nettleseren din og få overskriftene som blir sendt av nettleseren din. Legg dem i en ordbok og videresende med forespørselen.

Når du trenger innlogging for å skrape

Hvis du må opprette en konto og logge inn for å få dataene du ønsker, må du ha et godt HTTP-bibliotek for å håndtere pålogginger. Skraper-pålogging utsetter deg for tredjepartsnettsteder.

Hvis takstgrensen for webtjenesten din er avhengig av IP-adresse, angir du en kode som treffer webtjenesten til et Javascript på klientsiden. Send deretter resultatene tilbake til serveren din fra hver klient. Resultatene ser ut til å stamme fra så mange steder, og ingen vil overskride takstgrensen.

Dårlig formet markering

Noen markeringer kan være vanskelig å validere. I slike tilfeller kan du grave i HTML-parseren for innstillinger for feiltoleranse. Alternativt kan du behandle hele HTML-dokumentet som en lang streng og gjøre strengsplitting.

Selv om du kan skrape alle slags data på nettet, bruker noen nettsteder programvare for å stoppe skraping, og andre forbyr skraping av nett . Slike nettsteder kan saksøke deg og til og med ha deg fengslet for å høste inn dataene deres. Så vær smart i all nettskraping og gjør det trygt.