Semalt Review: Webscraping voor plezier en winst

U kunt site schrapen zonder dat u een API nodig heeft. Hoewel site-eigenaren agressief zijn in het stoppen met schrapen, geven ze minder om API's en leggen ze meer nadruk op websites. De feiten die veel sites niet afdoende beschermen tegen automatische toegang, scheppen ruimte voor schrapers. Enkele eenvoudige oplossingen helpen u bij het verzamelen van de gegevens die u nodig heeft.

Aan de slag met schrapen

Scraping vereist inzicht in de structuur van de gegevens die u nodig heeft en de toegankelijkheid ervan. Dit begint met het ophalen van uw gegevens. Zoek de URL die de benodigde informatie retourneert. Blader door de website en controleer hoe de URL's veranderen terwijl u door verschillende secties navigeert.

U kunt ook zoeken op verschillende termen op de site en controleren hoe de URL's veranderen op basis van uw zoekterm. Je zou een GET-parameter zoals q = die moeten zien verschijnen wanneer je een nieuwe term zoekt. Bewaar de GET-parameters die nodig zijn om uw gegevens te laden en verwijder de andere.

Hoe om te gaan met paginering

Paginering verhindert dat u alle gegevens die u nodig hebt tegelijk kunt openen. Als u op pagina 2 klikt, wordt een offset = parameter toegevoegd aan de URL. Dit is het aantal elementen op een pagina of het paginanummer. Verhoog dit aantal op elke pagina van uw gegevens.

Voor sites die AJAX gebruiken, opent u het netwerktabblad in Firebug of Inspector. Controleer de XHR-verzoeken, identificeer en focus op degenen die uw gegevens binnenhalen.

Gegevens ophalen uit pagina-opmaak

Dit wordt bereikt met behulp van CSS-hooks. Klik met de rechtermuisknop op een bepaald gedeelte van uw gegevens. Trek aan de Firebug of Inspector en zoom door de DOM-boom om de uiterste <div> te krijgen die een enkel item omhult. Zodra u het juiste knooppunt uit de DOM-structuur hebt, bekijkt u de paginabron om ervoor te zorgen dat uw elementen toegankelijk zijn in onbewerkte HTML.

Om de site met succes te schrapen, hebt u een HTML-parsingbibliotheek nodig die in HTML leest en deze omzet in een object dat u kunt herhalen totdat u krijgt wat u nodig heeft. Als uw HTTP-bibliotheek vereist dat u enkele cookies of headers instelt, bladert u door de site in uw webbrowser en haalt u de headers op die door uw browser worden verzonden. Zet ze in een woordenboek en stuur ze door met je verzoek.

Wanneer u zich moet aanmelden bij Scrape

Als u een account moet maken en moet inloggen om de gewenste gegevens te krijgen, moet u een goede HTTP-bibliotheek hebben om inloggegevens af te handelen. Scraper-login stelt u bloot aan sites van derden.

Als de snelheidslimiet van uw webservice afhangt van het IP-adres, stelt u een code die de webservice bereikt in op een client-side Javascript. Stuur de resultaten vervolgens van elke client terug naar uw server. De resultaten lijken afkomstig te zijn van zoveel plaatsen en geen enkele zal hun snelheidslimiet overschrijden.

Slecht gevormde opmaak

Sommige markeringen kunnen moeilijk te valideren zijn. Zoek in dergelijke gevallen naar uw HTML-parser voor instellingen voor fouttolerantie. U kunt ook het hele HTML-document behandelen als een lange tekenreeks en tekenreeksen splitsen.

Hoewel u allerlei soorten gegevens op het internet kunt schrapen, gebruiken sommige sites software om het schrapen te stoppen en andere verbieden het schrapen van websites . Dergelijke sites kunnen u aanklagen en u zelfs laten opsluiten voor het verzamelen van hun gegevens. Wees dus slim in al uw webscraping en doe het veilig.