Wist u dat het mogelijk is om gegevens van een website te schrapen met behulp van Google Spreadsheets? Hier ziet u hoe u het kunt doen.
Webscraping is een krachtige techniek om informatie uit websites te halen en deze automatisch te analyseren. Hoewel u dit handmatig kunt doen, kan het een vervelende en tijdrovende taak zijn. Webscraping-tools maken het proces sneller en efficiënter, terwijl de kosten lager zijn.
Interessant is dat Google Spreadsheets dankzij de IMPORTXML-functie het potentieel heeft om uw alles-in-één tool voor webscraping te zijn. Met IMPORTXML kunt u eenvoudig gegevens van webpagina's schrapen en deze gebruiken voor analyse, rapportage of andere gegevensgestuurde taken.
De IMPORTXML-functie in Google Spreadsheets
Google Spreadsheets biedt een ingebouwde functie genaamd IMPORTXML, waarmee u gegevens kunt importeren uit webformaten zoals XML, HTML, RSS en CSV. Deze functie kan een game-changer zijn als u gegevens van websites wilt verzamelen zonder toevlucht te nemen tot complexe codering.
Hier is de basissyntaxis van IMPORTXML:
=IMPORTXML(url, xpath_query)
- URL: de URL van de webpagina waarvan u gegevens wilt schrappen.
- xpath_query: De XPath-query die de gegevens definieert die u wilt extraheren.
XPath (XML Path Language) is een taal die wordt gebruikt om door XML-documenten te navigeren, inclusief HTML, waardoor u de locatie van gegevens binnen een HTML-structuur kunt opgeven. Het begrijpen van XPath-query's is essentieel voor het correct gebruiken van IMPORTXML.
XPath begrijpen
XPath biedt verschillende functies en expressies om door gegevens binnen een HTML-document te navigeren en deze te filteren. Een uitgebreide XML- en XPath-handleiding valt buiten het bestek van dit artikel, dus we zullen genoegen nemen met enkele essentiële XPath-concepten:
- Elementselectie: U kunt elementen selecteren met / En // paden aan te duiden. Bijvoorbeeld, /html/body/div selecteert alle div-elementen in de hoofdtekst van een document.
- Kenmerkselectie: Om attributen te selecteren, kunt u gebruiken @. Bijvoorbeeld, //@href selecteert alles href attributen op de pagina.
- Predikaatfilters: U kunt elementen filteren met behulp van predikaten tussen vierkante haakjes ([ ]). Bijvoorbeeld, /div[@class="container"] selecteert alles div elementen met de klas houder.
- Functies: XPath biedt verschillende functies, zoals bevat(), begint met(), En tekst() om specifieke acties uit te voeren, zoals het controleren op tekstinhoud of attribuutwaarden.
Hoe XPath van een website te extraheren
Tot nu toe kent u de IMPORTXML-syntaxis, kent u de URL van de website en weet u welk element u wilt extraheren. Maar hoe krijg je de XPath van het element?
U hoeft de structuur van een website niet uit uw hoofd te kennen om de gegevens ervan te extraheren met IMPORTXML. In feite heeft elke browser een handige tool waarmee je direct de XPath van elk element kunt kopiëren.
Het gereedschap Element inspecteren kunt u de XPath uit website-elementen extraheren. Hier is hoe:
- Navigeer naar de webpagina die u wilt schrapen met uw favoriete webbrowser.
- Zoek het element dat u wilt schrapen.
- Klik met de rechtermuisknop op het element.
- Selecteer Inspecteer element vanuit het rechtermuisknopmenu. Uw browser opent een paneel waarin de HTML-code van de webpagina wordt weergegeven. Het relevante HTML-element wordt in de code gemarkeerd.
- In het deelvenster Element inspecteren klikt u met de rechtermuisknop op het gemarkeerde element in de HTML-code.
- Klik Kopieer XPath om het XPath-adres van het element naar uw klembord te kopiëren.
Nu je alles hebt wat je nodig hebt, is het tijd om IMPORTXML in actie te zien en wat links te schrappen.
U kunt IMPORTXML gebruiken om allerlei soorten gegevens van websites te schrapen. Dit omvat links, video's, afbeeldingen en vrijwel elk element van de website. Links zijn een van de meest prominente elementen in webanalyse, en u kunt veel over een website leren door simpelweg de pagina's waarnaar deze linkt te analyseren.
Met IMPORTXML kunt u snel links in Google Spreadsheets schrapen en deze vervolgens verder analyseren met behulp van de verschillende functies die Google Spreadsheets biedt.
Om alle links van een webpagina te schrapen, kunt u de volgende formule gebruiken:
=IMPORTXML(url, "//a/@href")
Deze XPath-query selecteert alles href attributen van A elementen, waardoor effectief alle links op de pagina worden geëxtraheerd.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href")
De bovenstaande formule schrapt alle links in een Wikipedia-artikel.
Het is een goed idee om de URL van de webpagina in een aparte cel in te voeren en vervolgens naar die cel te verwijzen. Dit voorkomt dat uw formule te lang en onpraktisch wordt. U kunt hetzelfde doen met de XPath-query.
2. Alle linkteksten schrapen
Om de tekst van de links en hun URL's te extraheren, kunt u het volgende gebruiken:
=IMPORTXML(url, "//a")
Deze query selecteert alle elementen en u kunt de linktekst en URL's uit de resultaten extraheren.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a")
De bovenstaande formule haalt de linkteksten uit hetzelfde Wikipedia-artikel.
Soms moet u specifieke links schrappen op basis van criteria. U bent bijvoorbeeld mogelijk geïnteresseerd in het extraheren van links die een bepaald trefwoord bevatten, of links die zich in een specifiek gedeelte van de pagina bevinden.
Met de juiste kennis van XPath kunt u elk element lokaliseren waarnaar u op zoek bent.
Om links te schrapen die een specifiek trefwoord bevatten, kunt u de functie bevat() XPath gebruiken:
=IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")
Deze zoekopdracht selecteert href-attributen van elementen waarbij de href het opgegeven trefwoord bevat.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")
De bovenstaande formule schrapt alle links die het woordrecord in hun tekst bevatten binnen een voorbeeld van een Wikipedia-artikel.
Om links uit een bepaalde sectie van een pagina te schrapen, kunt u het XPath van de sectie opgeven. Bijvoorbeeld:
=IMPORTXML(url, "//div[@class='section']//a/@href")
Deze query selecteert href-attributen van elementen binnen div-elementen met de klasse 'section'.
Op dezelfde manier selecteert de onderstaande formule alle links binnen de div-klasse die de klasse mw-content-container hebben:
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class='mw-content-container']//a/@href")
Het is vermeldenswaard dat u IMPORTXML voor meer dan alleen webscrapen kunt gebruiken. U kunt de functiereeks IMPORT gebruiken om importeer gegevenstabellen van websites naar Google Spreadsheets.
Hoewel Google Spreadsheets en Excel de meeste functies delen, is de IMPORT-familie van functies uniek voor Google Spreadsheets. U zult andere methoden moeten overwegen importeer gegevens van websites naar Excel.
Vereenvoudig webscrapen met Google Spreadsheets
Webscraping met Google Spreadsheets en de IMPORTXML-functie is een veelzijdige en toegankelijke manier om gegevens van websites te verzamelen.
Door XPath onder de knie te krijgen en te begrijpen hoe u effectieve query's kunt maken, kunt u het volledige potentieel van IMPORTXML ontsluiten en waardevolle inzichten verkrijgen uit webbronnen. Dus begin met scrappen en breng uw webanalyse naar een hoger niveau!