Semalt Review: Webskrapning for sjov og fortjeneste

Du kan skrabe webstedet uden behov for en API. Mens webstedsejere er aggressive over at stoppe skrabning, er de mindre interesserede i API'er og lægger i stedet mere vægt på websteder. De kendsgerninger, som mange steder ikke tilstrækkelig beskytter mod automatisk adgang skaber et spillerum for skrabere. Nogle enkle løsninger hjælper dig med at høste de data, du har brug for.

Kom godt i gang med skrabning

Skrabning kræver forståelse af strukturen for de data, du har brug for, og deres tilgængelighed. Dette starter med at hente dine data. Find den URL, der returnerer de oplysninger, du har brug for. Gennemse gennem webstedet, og kontroller, hvordan webadresserne ændres, når du navigerer gennem forskellige sektioner.

Alternativt kan du søge i flere udtryk på webstedet og kontrollere, hvordan webadresserne ændres baseret på dit søgeudtryk. Du skal se en GET-parameter som q =, der ændres, hver gang du søger efter en ny term. Behold de nødvendige GET-parametre til indlæsning af dine data, og fjern de andre.

Hvordan man håndterer pagination

Pagination forhindrer dig i at få adgang til alle de data, du har brug for på én gang. Når du klikker på side 2, tilføjes en offset = parameter til URL'en. Dette er enten antallet af elementer på en side eller sidenummeret. Forøg dette nummer på hver side af dine data.

For websteder, der bruger AJAX, skal du trække netværksknappen op i Firebug eller Inspector. Kontroller XHR-anmodningerne, identificer og fokuser på dem, der trækker dine data ind.

Hent data fra sidemarkering

Dette opnås ved hjælp af CSS-kroge. Højreklik på et bestemt afsnit af dine data. Træk firebug eller inspector og zoom gennem DOM-træet for at få det yderste <div>, der indpakker et enkelt emne. Når du har den korrekte knude fra DOM-træet, kan du se sidekilden for at sikre, at dine elementer er tilgængelige i rå HTML.

For at skrabe webstedet med succes har du brug for et HTML-parsingsbibliotek, der læser i HTML og gør det til et objekt, som du kan itere, indtil du får det, du har brug for. Hvis dit HTTP-bibliotek kræver, at du indstiller nogle cookies eller overskrifter, skal du gennemse stedet på din webbrowser og få overskrifterne sendt af din browser. Læg dem i en ordbog, og send dem videre med din anmodning.

Når du har brug for et login for at skrabe

Hvis du skal oprette en konto og logge ind for at få de ønskede data, skal du have et godt HTTP-bibliotek for at håndtere login. Skraber-login udsætter dig for tredjepartswebsteder.

Hvis takstgrænsen for din webtjeneste afhænger af IP-adressen, skal du indstille en kode, der rammer webservicen til et Javascript på klientsiden. Videresend derefter resultaterne tilbage til din server fra hver klient. Resultaterne ser ud til at stamme fra så mange steder, og ingen vil overstige deres takstgrænse.

Dårligt formet markering

Nogle markeringer kan være vanskelige at validere. I sådanne tilfælde skal du grave i din HTML-parser for indstillinger for fejltolerance. Alternativt skal du behandle hele HTML-dokumentet som en lang streng og udføre strengopdeling.

Mens du kan skrabe alle slags data på nettet, anvender nogle steder software til at stoppe skrabning, og andre forbyder webskrotning . Sådanne websteder kan sagsøge dig og endda få dig i fængsel for at høste deres data. Så vær smart i al din webskrabering, og gør det sikkert.