Hur man skrapar data från en webbplats med Google Sheets

Webbskrapning är en kraftfull teknik för att extrahera information från webbplatser och analysera dem automatiskt. Även om du kan göra detta manuellt, kan det vara en tråkig och tidskrävande uppgift. Verktyg för webbskrapning gör processen snabbare och effektivare, samtidigt som det kostar mindre.

Intressant nog har Google Sheets potential att bli ditt enda verktyg för webbskrotning, tack vare dess IMPORTXML-funktion. Med IMPORTXML kan du enkelt skrapa data från webbsidor och använda den för analys, rapportering eller andra datadrivna uppgifter.

IMPORTXML-funktionen i Google Kalkylark

Google Sheets har en inbyggd funktion som heter IMPORTXML, som låter dig importera data från webbformat som XML, HTML, RSS och CSV. Den här funktionen kan vara en game-changer om du vill samla in data från webbplatser utan att tillgripa komplex kodning.

Här är den grundläggande syntaxen för IMPORTXML:

 =IMPORTXML(url, xpath_query) 
  • url: URL:en till webbsidan du vill skrapa data från.
  • xpath_query: XPath-frågan som definierar de data du vill extrahera.

XPath (XML Path Language) är ett språk som används för att navigera i XML-dokument, inklusive HTML – så att du kan ange platsen för data i en HTML-struktur. Det är viktigt att förstå XPath-frågor för att kunna använda IMPORTXML korrekt.

Förstå XPath

XPath tillhandahåller olika funktioner och uttryck för att navigera och filtrera data i ett HTML-dokument. En omfattande XML- och XPath-guide ligger utanför denna artikels räckvidd, så vi nöjer oss med några viktiga XPath-koncept:

  • Elementval: Du kan välja element med / och // för att ange sökvägar. Till exempel, /html/body/div väljer alla div-element i brödtexten i ett dokument.
  • Attributval: För att välja attribut kan du använda @. Till exempel väljer //@href alla href-attribut på sidan.
  • Predikatfilter: Du kan filtrera element med hjälp av predikat inom hakparenteser ([ ]). Till exempel, /div[@class=”container”] väljer alla div-element med klassbehållaren.
  • Funktioner: XPath tillhandahåller olika funktioner som contains(), starts-with() och text() för att utföra specifika åtgärder som att leta efter textinnehåll eller attributvärden.

Än så länge känner du till IMPORTXML-syntaxen, du känner till webbplatsens URL och du vet vilket element du vill extrahera. Men hur får du elementets XPath?

Du behöver inte känna till en webbplatss struktur utantill för att extrahera dess data med IMPORTXML. Faktum är att varje webbläsare har ett snyggt verktyg som låter dig kopiera alla elements XPath direkt.

Med verktyget Inspect Element kan du extrahera XPath från webbplatselement. Här är hur:

  • Navigera till webbsidan du vill skrapa med hjälp av din föredragna webbläsare.
  • Leta reda på det element du vill skrapa.
  • Högerklicka på elementet.
  • Välj Inspektera element från högerklicksmenyn. Din webbläsare kommer att öppna en panel som visar HTML-koden för webbsidan. Det relevanta HTML-elementet kommer att markeras i koden.
  • I panelen Inspektera element högerklickar du på det markerade elementet i HTML-koden.
  • Klicka på Kopiera XPath för att kopiera XPath-adressen för elementet till ditt urklipp.
  • Nu när du har allt du behöver är det dags att se IMPORTXML i aktion och skrapa några länkar.

    Du kan använda IMPORTXML för att skrapa alla typer av data från webbplatser. Detta inkluderar länkar, videor, bilder och nästan alla delar av webbplatsen. Länkar är ett av de mest framträdande delarna i webbanalys, och du kan lära dig mycket om en webbplats bara genom att analysera sidorna den länkar till.

    IMPORTXML låter dig snabbt skrapa länkar i Google Sheets och sedan analysera dem ytterligare med hjälp av de olika funktionerna som Google Sheets erbjuder.

    För att skrapa alla länkar från en webbsida kan du använda följande formel:

     =IMPORTXML(url, "//a/@href")  

    Denna XPath-fråga väljer alla href-attribut för ett element, vilket effektivt extraherar alla länkar på sidan.

     =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href") 

    Formeln ovan skrapar alla länkar i en Wikipedia-artikel.

    Det är en bra idé att ange webbsidans URL i en separat cell och sedan hänvisa till den cellen. Detta kommer att förhindra att din formel blir för lång och otymplig. Du kan göra samma sak med XPath-frågan.

    För att extrahera texten i länkarna tillsammans med deras webbadresser kan du använda:

     =IMPORTXML(url, "//a")  

    Den här frågan väljer alla element och du kan extrahera länktexten och webbadresserna från resultaten.

     =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a") 

    Formeln ovan får länktexterna i samma Wikipedia-artikel.

    Ibland kan du behöva skrapa specifika länkar baserat på kriterier. Du kan till exempel vara intresserad av att extrahera länkar som innehåller ett visst sökord eller länkar som finns i en specifik del av sidan.

    Med rätt kunskap om XPath kan du lokalisera vilket element du letar efter.

    För att skrapa länkar som innehåller ett specifikt nyckelord kan du använda funktionen contains() XPath:

     =IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")  

    Den här frågan väljer href-attribut för element där href innehåller det angivna nyckelordet.

     =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")

    Formeln ovan skrapar bort alla länkar som innehåller ordet post i sin text i en exempelartikel på Wikipedia.

    För att skrapa länkar från ett visst avsnitt på en sida kan du ange avsnittets XPath. Till exempel:

     =IMPORTXML(url, "//div[@class="section"]//a/@href")  

    Den här frågan väljer href-attribut för element inom div-element med klassen ”sektion”.

    På samma sätt väljer formeln nedan alla länkar inom div-klassen som har klassen mw-content-container:

     =IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class="mw-content-container"]//a/@href") 

    Det är värt att notera att du kan använda IMPORTXML för mer än webbskrapning. Du kan använda IMPORT-familjen av funktioner för att importera datatabeller från webbplatser till Google Sheets.

    Även om Google Sheets och Excel delar de flesta av sina funktioner, är IMPORT-familjen av funktioner unik för Google Sheets. Du måste överväga andra metoder för att importera data från webbplatser till Excel.

    Förenkla webbskrapning med Google Sheets

    Webbskrapa med Google Sheets och IMPORTXML-funktionen är ett mångsidigt och tillgängligt sätt att samla in data från webbplatser.

    Genom att behärska XPath och förstå hur man skapar effektiva frågor kan du låsa upp IMPORTXMLs fulla potential och få värdefulla insikter från webbresurser. Så, börja skrapa och ta din webbanalys till nästa nivå!