Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Scrape.do till Sheets: rensad sidtext klar

Rickard Andersson Partner, Nodenordic.se

Du kopierar en URL, klistrar in den i ett dokument och lägger sedan alldeles för lång tid på att radera cookie-banners, navigationsmenyer och ”prenumerera”-popups från texten du faktiskt behövde. Sen blockerar sidan din scraper, returnerar ingenting och du är tillbaka på skärmdumpar och manuella anteckningar.

Den här Scrape.do Sheets-automationen träffar contentstrateger och SEO-folk först, ärligt talat. Men marknadsanalytiker och små byråteam känner samma friktion när briefar och konkurrentdokument behöver felfria källor snabbt.

Du får lära dig hur det här n8n-flödet pålitligt extraherar läsbar sidtext, upptäcker fel och faller tillbaka till Scrape.do när anti-bot-system kommer i vägen, så att du kan skicka strukturerad output direkt till Google Sheets.

Så fungerar automationen

Se hur detta löser problemet:

n8n Workflow Template: Scrape.do till Sheets: rensad sidtext klar

Utmaningen: strukturerad textextraktion som inte skapar fel

Att få ut ”bara innehållet” från en webbsida låter enkelt tills du gör det i skala. En sajt laddar fint, nästa returnerar en klump HTML och en tredje blockerar tyst förfrågningar med Cloudflare så att ditt extraktionsverktyg kommer tillbaka tomt. Den osäkerheten är den verkliga tidstjuven. Du tappar inte bara minuter på att försöka igen – du tappar fokus eftersom du hela tiden måste kontrollera om din källa fångades korrekt. För research, briefar och AI-inputs leder rörig eller saknad text till svaga sammanfattningar, vinklar som hamnar fel och mer redigering senare.

Det blir snabbt mycket. Här är var det fallerar i det dagliga marknadsarbetet.

  • Du slutar med att kopiera om innehåll till ett dokument eftersom första scrapet innehöll sidhuvud, sidfot och orelaterad UI-text.
  • Anti-bot-skydd orsakar slumpmässiga fel, vilket gör att du inte litar på din datamängd eller dina anteckningar.
  • Vissa sidor returnerar binärt innehåll (eller oväntade format), och flödet behöver stoppa snyggt i stället för att producera skräp.
  • ”Hittades inte”-sidor slinker igenom och behandlas som riktiga källor, vilket senare smutsar ned sheets, briefar och AI-output.

Lösningen: extrahera strukturerad sidtext med anti-bot-fallback

Det här flödet gör ett enda input (en URL) till strukturerat, läsbart innehåll som du kan lagra och återanvända utan risk. Det börjar med en vanlig webbhämtning för att hålla det snabbt och kostnadseffektivt. Sedan kontrollerar det svaret för ”fel typ”-scenarier, som binärt innehåll eller format som inte stöds, och stoppar med ett tydligt fel i stället för att skicka dålig data vidare. Om sidan är läsbar plockar en nod för innehållsextraktion ut den faktiska sidtexten (inte allt runtomkring) och flödet förgrenar sig utifrån din preferens: full sidtext eller ett kortare utdrag. Om den första förfrågan verkar blockerad eller misslyckas på grund av anti-bot-skydd faller det automatiskt tillbaka till Scrape.do, försöker igen och kör samma extraktionspipeline.

Flödet startar när en annan automation (eller ett AI Agent-verktyg) skickar in url plus en valfri fulltext-flagga. Därifrån hämtar det sidan, validerar svaret, extraherar strukturerad text och mappar output till en konsekvent struktur som är enkel att skriva in i Google Sheets.

Vad som ändras: före vs. efter

Praktisk effekt

Säg att du tar fram ett konkurrentresearch-dokument varje vecka med 25 URL:er. Manuellt kan du lägga cirka 8 minuter per sida på att kopiera, rensa och klistra in i dina anteckningar, alltså runt 3 timmar totalt (och det är när inget blockerar dig). Med det här flödet innebär 25 URL:er i din process oftast en minut eller två i uppsättning, och sedan kör automationsflödet medan du gör annat. Även om några sajter triggar Scrape.do-fallbacken handlar det fortfarande om kanske 15 minuters uppmärksamhet i stället för en hel eftermiddag.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Scrape.do som fallback för scraping vid anti-bot.
  • Google Sheets för att lagra extraherad text för research.
  • Scrape.do API-token (hämta den i din Scrape.do-dashboard).

Kunskapsnivå: Medel. Du kopplar credentials, installerar en community-nod och testar några URL:er.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Flödet i workflowet

En URL kommer in som parameter. Detta är byggt som ett sub-workflow, så det är gjort för att anropas från ett annat n8n-workflow eller användas som ett verktyg för en AI Agent. Du skickar in url och väljer om du vill ha fulltext-output.

Flödet hämtar sidan och kontrollerar tydliga fel direkt. Det validerar ”hittades inte”-svar tidigt och kontrollerar om innehållet ser ut som en typ som inte stöds innan det försöker extrahera läsbar text.

Strukturerad text extraheras och formas till en pålitlig output. Med community-noden för webbsideextraktion drar flödet ut sidans läsbara text och titel, och mappar sedan resultatet till antingen en fulltextstruktur eller en kort utdragsstruktur.

Anti-bot-fallbacken aktiveras bara när det behövs. Om den första hämtningen verkar blockerad försöker flödet igen via Scrape.dos scraping-API och kör sedan samma validerings- och extraktionssteg så att outputen förblir konsekvent.

Du kan enkelt ändra outputfälten så att de matchar dina Google Sheets-kolumner utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera triggern för subworkflow

Konfigurera workflowets indata som andra workflows ska skicka in till detta subworkflow.

  1. Lägg till eller öppna noden Subworkflow Trigger.
  2. I Workflow Inputs, lägg till url (string) och fulltext (boolean).
  3. Bekräfta att triggern är ansluten till Basic Web Fetch som första exekveringssteg.

Steg 2: Anslut den primära webbhämtningen

Konfigurera den initiala HTTP-förfrågan som försöker hämta målsidan.

  1. Öppna Basic Web Fetch och ställ in URL till ={{ $json.url }}.
  2. Aktivera Send Headers och lägg till en User-Agent-header med värdet Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/0.0.0.0 Safari/537.36.
  3. I Options, ställ in Timeout till 10000 och aktivera Allow Unauthorized Certs.
  4. Låt On Error vara Continue för att möjliggöra felroutning till Validate Not Found.

Steg 3: Sätt upp kontroller av innehållstyp och extrahering

Säkerställ att binära filer blockeras och att HTML-innehåll extraheras för tolkning.

  1. I Binary Content Check, behåll villkoret som kontrollerar att ={{ $binary.data }} finns för att upptäcka binära svar.
  2. Verifiera att “true”-utgången routar till Unsupported Type Halt med Error Message satt till =Unsupported content-type.
  3. Verifiera att “false”-utgången routar till Extract Page Content och ställ in HTML till ={{ $json.data }}.
Om förfrågan returnerar binärt innehåll stoppar Unsupported Type Halt workflowet omedelbart. Säkerställ att era indata-URL:er pekar på HTML-sidor.

Steg 4: Konfigurera output-mappning för fulltext vs sammanfattning

Dela upp output-logiken så att den returnerar antingen hela sidans text eller en sammanfattning beroende på input-flaggan.

  1. I Full Text Branch, behåll boolean-villkoret för ={{ $('Subworkflow Trigger').item.json.fulltext }}.
  2. I Full Text Output Map, mappa title till ={{ $json.title.replace(/\p{Extended_Pictographic}/gu, '') }} och text till det angivna rensningsuttrycket.
  3. I Summary Output Map, mappa title till ={{ $json.title.replace(/\p{Extended_Pictographic}/gu, '') }}, url till ={{ $('Subworkflow Trigger').item.json.url }} och content till det angivna rensningsuttrycket för utdrag.
⚠️ Vanlig fallgrop: Om fulltext inte skickas från anropande workflow kommer Full Text Branch som standard att routa till Summary Output Map.

Steg 5: Lägg till felhantering och anti-bot-fallback

Routa vanliga fel till en Scrape API-fallback och hantera hårda fel på ett rent sätt.

  1. I Validate Not Found, behåll villkoret ={{ $json.error.status }} notEquals 404 så att 404:or routas till Not Found Stop.
  2. I Not Found Stop, bekräfta att Error Message är =Error requesting website (404).
  3. I Anti-Bot Fallback Check, behåll OR-villkoren för ECONNABORTED, ETIMEDOUT, ERR_CANCELED och ERR_BAD_REQUEST.
  4. I Scrape API Request, ställ in URL till =http://api.scrape.do och skicka query-parametern url med ={{ $json.url }}.
  5. Säkerställ att fel som inte matchar fallback-villkoren går till Server Failure Stop med Error Message satt till =Error requesting website ({{ $json.error.code }}).

Behörighet krävs: Anslut era httpQueryAuth-credentials i Scrape API Request.

Fallbacken triggas endast för de angivna felkoderna. Om er målsajt blockerar förfrågningar med andra koder, lägg till dem i Anti-Bot Fallback Check.

Steg 6: Testa och aktivera ert workflow

Kör ett manuellt test för att validera hela exekveringsflödet och aktivera sedan workflowet för produktion.

  1. Klicka på Execute Workflow och ange en testindata för url samt en fulltext-boolean.
  2. Bekräfta flödet: Subworkflow TriggerBasic Web FetchBinary Content CheckExtract Page ContentFull Text Branch → output-mappning.
  3. Verifiera att ett binärt svar triggar Unsupported Type Halt, och att felsvar routas via Validate Not Found och Anti-Bot Fallback Check.
  4. När resultaten är korrekta, växla workflowet till Active för produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Se upp med

  • Scrape.do-credentials kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först tokenstatus i din Scrape.do-dashboard.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in ert varumärkesspråk tidigt, annars kommer du redigera output för alltid.

Vanliga frågor

Hur snabbt kan jag implementera den här Scrape.do Sheets-automationen?

Vanligtvis cirka 30 minuter när du har Scrape.do-token och community-noden installerad.

Kan icke-tekniska team implementera den här strukturerade textextraktionen?

Ja, men du vill ha någon som är bekväm med att koppla credentials och testa några exempel-URL:er. Ingen kodning krävs.

Är n8n gratis att använda för det här Scrape.do Sheets-flödet?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in Scrape.do API-användning när fallback triggas.

Var kan jag hosta n8n för att köra den här automationslösningen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Hur anpassar jag den här Scrape.do Sheets-lösningen till mina specifika utmaningar?

Du kan anpassa fälten i noderna ”Full Text Output Map” och ”Summary Output Map” så att de matchar dina Google Sheets-kolumner (till exempel lägga till författare, publiceringsdatum eller en ”topic”-etikett). Om du behöver andra felregler kan du justera ”Validate Not Found” för att fånga dina vanligaste edge cases. Vissa team byter också slutdestination så att samma strukturerade output går till en AI Agent, en databas eller ett briefingdokument.

Varför misslyckas min Scrape.do-anslutning i det här flödet?

Oftast handlar det om en utgången eller felaktig API-token. Uppdatera Scrape.do-credentials i HTTP Request-noden och kör sedan om en känd ”blockerad” URL för att bekräfta att fallbacken fungerar. Om det fortfarande fallerar, kontrollera gränserna i din Scrape.do-plan och se till att request headers inte har ändrats på ett sätt som Scrape.do avvisar.

Vilken kapacitet har den här Scrape.do Sheets-lösningen?

Den är byggd för batcher av URL:er, inte bara enstaka sidor.

Är den här Scrape.do Sheets-automationen bättre än att använda Zapier eller Make?

För det här flödet passar n8n bättre eftersom förgreningarna (normal hämtning vs. fallback), valideringsstopp och återanvändbar sub-workflow-design är svåra att modellera snyggt i enklare verktyg. Du får också mer kontroll över felhantering, vilket spelar roll när vissa källor medvetet kommer att fallera. Zapier eller Make kan fortfarande fungera om du bara behöver ”hämta en sida och lagra den”, men du kommer lägga mer tid på att passa undantag. Och ärligt talat: anti-bot-fallback är där de uppläggen snabbt blir röriga. Prata med en automationsexpert om du är osäker på vad som passar.

Strukturerade källor gör allt nedströms enklare: briefar, sammanfattningar och det slutliga innehållet. Sätt upp detta en gång, så slutar din researchpipeline att skapa fel varje gång en sajt blir ”skyddande”.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal