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

Bright Data + Google Sheets – rensad receptdata

Rickard Andersson Partner, Nodenordic.se

Att kopiera recept från slumpmässiga webbplatser till ett kalkylark är den sortens jobb som ser “snabbt” ut tills du har gjort det 40 gånger. Ingredienser missas, enheter förvrängs och du slutar med att ändå kontrollera original­sidan igen.

Den här automatiseringen av receptdata drabbar matbloggare hårdast, men nutritionister som granskar måltidsplaner och ops-drivna grundare som bygger receptbibliotek känner av det också. Du kan förvandla stökiga HTML-sidor till konsekventa rader i Google Sheets utan att leva i flikar hela dagen.

Du får se vad arbetsflödet automatiserar, vad som kommer ut i andra änden och de små valen i uppsättningen som gör det driftsäkert i skala.

Så fungerar automatiseringen

Hela n8n-arbetsflödet, från trigger till slutlig output:

n8n Workflow Template: Bright Data + Google Sheets – rensad receptdata

Problemet: receptsidor är inte kalkylarksanpassade

Receptsajter byggs för människor, inte för data. En sida gömmer ingredienser i dragspel, en annan delar upp steg i bilder och en tredje laddar allt via skript som inte går att kopiera korrekt. Så du gör samma ritual: öppna sidan, kopiera ingredienser, fixa formatering, gissa saknade enheter, klistra in i Sheets och sedan dubbelkolla eftersom du inte litar på det du just klistrade in. Det är inte bara långsamt. Det är mentalt utmattande, och felen är luriga.

Friktionen växer efter de första handfulla recepten. Här är var det oftast faller isär.

  • Ingredienser och mängder separeras, vilket tvingar fram manuell städning innan du kan analysera något.
  • Varje sajt har en annan struktur, så en “mallprocess” håller aldrig särskilt länge.
  • Du lägger ungefär 10 minuter per recept bara på att omformatera text så att den går att använda i ett ark.
  • När du skalar till dussintals eller hundratals recept blir små copy-paste-misstag till dåliga rekommendationer och bortkastade granskningar.

Lösningen: skrapa med Bright Data, strukturera med OpenAI, spara till Sheets

Det här arbetsflödet samlar in recept-URL:er, hämtar den underliggande sidans HTML med Bright Datas Web Unlocker och låter sedan OpenAI (GPT-4o mini) göra om den stökiga HTML:en till en konsekvent, strukturerad receptpost. Det stannar inte vid en sida heller. Det kan crawla paginerade listningssidor, loopa igenom varje receptlänk och processa dem en och en med en kort fördröjning så att du inte belastar sajter i onödan. Till sist levererar arbetsflödet den rensade datan på två praktiska sätt: det kan skicka en JSON-payload till en webhook (för Slack, ett internt API eller en dashboard), och det kan också skriva den strukturerade responsen till disk för tillförlitlig lagring och spårbarhet.

Arbetsflödet startar med en URL till en receptkälla och dina Bright Data-uppgifter. Därifrån extraherar det paginering, bygger en array av sidor att besöka, skrapar varje receptsida och använder AI för att tolka ut de fält du faktiskt vill ha i Google Sheets. Du får standardiserade rader som du kan filtrera, sortera och granska snabbt.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du bygger ett bibliotek med 50 trendande recept från en paginerad “senaste recept”-sida. Manuellt, om det tar cirka 10 minuter per recept att kopiera, rensa och klistra in i Google Sheets, är det ungefär 8 timmar av monotont arbete. Med det här arbetsflödet lägger du cirka 10 minuter på att ställa in käll-URL:en och dina målfält, och låter sedan det köra medan det skrapar och strukturerar varje sida. Även om bearbetningen tar ett par minuter per recept i bakgrunden, sjunker din mänskliga tid till snabb granskning och korrigeringar, inte datainmatning.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Bright Data för skrapåtkomst via Web Unlocker
  • OpenAI för att strukturera receptdata från HTML
  • Bright Data Web Unlocker-token (hämtas i Bright Data zone-inställningar)

Svårighetsnivå: Mellan. Du kopplar autentiseringsuppgifter, ändrar några fält och bekräftar din webhook- eller Google Sheets-destination.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Du anger en URL till en receptkälla. Arbetsflödet startar från en manuell körning (eller en annan trigger du lägger till senare) och använder din “receptlista” eller “sökresultat”-sida som startpunkt.

Bright Data hämtar det riktiga sidinnehållet. Det skrapar startsidan, läser sedan pagineringsdetaljer och bygger en lista med sidlänkar att besöka. En kort väntan läggs in mellan batcher så att körningar blir stabilare och mindre benägna att misslyckas på långsamma sidor.

OpenAI strukturerar varje recept. För varje receptsida skickar arbetsflödet den råa HTML:en genom en extraktionsprompt och tolkar den till ett förutsägbart schema (tänk titel, ingredienser, steg, tid, portioner, taggar). Det är den del som förvandlar “webbkaos” till kalkylarksklar data.

Dina system tar emot resultatet. Arbetsflödet skapar en payload, postar den till din webhook-endpoint och sparar en strukturerad fil till disk så att du alltid har en källa att lita på för revisioner eller ombearbetning.

Du kan enkelt justera de extraherade fälten så att de matchar dina Google Sheets-kolumner utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera den manuella triggern

Det här arbetsflödet startar manuellt så att ni kan testa och iterera säkert innan ni aktiverar någon schemaläggning.

  1. Lägg till noden Manual Workflow Starter för att starta körningen vid behov.
  2. Lämna alla parametrar som standard i Manual Workflow Starter.

Steg 2: anslut BrightData och definiera käll-URL:en

Dessa noder laddar scraping-verktygen och ställer in sök-URL och webhook-destinationen som används genom hela flödet.

  1. Öppna Retrieve BrightData Tools och anslut autentiseringsuppgifter. Credential Required: Anslut era mcpClientApi-uppgifter.
  2. I Define Recipe Source URL, ställ in url till https://realfood.tesco.com/search.html?search=tomato%20pasta&sortby=Rating.
  3. Ställ in webhook_url till er endpoint, t.ex. https://webhook.site/[YOUR_ID].
  4. Ställ in base_url till https://realfood.tesco.com/search.html.

Tips: Säkerställ att base_url matchar domänen för pagineringslänkarna, annars kan URL:erna för nästa sida bli felaktiga.

Steg 3: skrapa första sidan och extrahera paginering

Det här steget skrapar den första sidan med sökresultat och använder AI för att extrahera pagineringslänkarna.

  1. I MCP Recipe Page Scraper, behåll toolName som scrape_as_html och toolParameters som ={ "url": "{{ $json.url }}" } . Credential Required: Anslut era mcpClientApi-uppgifter.
  2. I Extract Pagination Details, ställ in text till =Extract the paginated data from the provided content. Here's the content : {{ $json.result.content[0].text }} Append the link with the Base URL as {{ $('Define Recipe Source URL').item.json.base_url }}.
  3. Anslut OpenAI Pager Model som språkmodell för Extract Pagination Details. Credential Required: Anslut era openAiApi-uppgifter.
  4. Anslut Parse Pagination Schema som output parser för Extract Pagination Details och ställ in jsonSchemaExample till [{ "page_number": "page number in int", "link": "link to the web content" }].

⚠️ Vanlig fallgrop: Parse Pagination Schema är en AI output parser—lägg inte till några autentiseringsuppgifter här. Autentiseringsuppgifter ska ställas in på OpenAI Pager Model.

Steg 4: bygg och iterera pagineringsloopen

Pagineringsresultat omvandlas till en array och itereras med en fördröjning mellan sidorna.

  1. I Build Pagination Array, ställ in jsCode till return $input.first().json.output.
  2. Använd Iterate Page Links för att bearbeta varje sida i batchar (standardvärden fungerar bra).
  3. I Delay Before Next Page, ställ in amount till 10 för att begränsa anropsfrekvensen.
  4. I MCP Loop Page Scraper, behåll toolName som scrape_as_html och toolParameters som ={ "url": "{{ $json.link }}" } . Credential Required: Anslut era mcpClientApi-uppgifter.

Steg 5: extrahera receptdata med AI

Varje skrapad sida skickas till en AI-kedja för att extrahera strukturerad receptdata baserat på ett definierat schema.

  1. I Extract Recipe Structure, ställ in text till =Extract search data. Here's the content : Output the data in JSON.
  2. Anslut OpenAI Recipe Model som språkmodell för Extract Recipe Structure. Credential Required: Anslut era openAiApi-uppgifter.
  3. Anslut Parse Recipe Schema som output parser och behåll schemaType som manual med det angivna JSON-schemat.

⚠️ Vanlig fallgrop: Parse Recipe Schema är en sub-node output parser—autentiseringsuppgifter ska ställas in på OpenAI Recipe Model, inte på parsern.

Steg 6: konfigurera parallella utdata (webhook + fil)

Efter extraheringen skickar arbetsflödet data till en webhook och skriver samtidigt en strukturerad fil.

  1. Observera att Extract Recipe Structure skickar utdata parallellt till både Generate Binary Payload och Send Webhook Payload.
  2. I Generate Binary Payload, behåll functionCode som items[0].binary = { data: { data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64') } }; return items;.
  3. I Write Structured File, ställ in operation till write och fileName till =d:\Recipe-Structured-Data-{{ $('Iterate Page Links').item.json.page_number }}.json.
  4. I Send Webhook Payload, ställ in url till ={{ $('Define Recipe Source URL').item.json.webhook_url }}, aktivera sendBody, och behåll contentType som multipart-form-data.
  5. I Send Webhook Payload, lägg till en body-parameter med namnet recipe_content med värdet ={{ $json.output.toJsonString() }}.

Tips: Säkerställ att er webhook-endpoint accepterar multipart-form-data eller anpassa content type vid behov.

Steg 7: testa och aktivera ert arbetsflöde

Verifiera hela körningen med en enskild exekvering innan ni aktiverar det för produktionsbruk.

  1. Klicka på Execute Workflow från Manual Workflow Starter för att köra flödet.
  2. Bekräfta att Iterate Page Links går igenom sidorna och att Delay Before Next Page pausar i 10 sekunder mellan anropen.
  3. Verifiera att Send Webhook Payload postar data till er webhook och att Write Structured File skapar filer som d:\Recipe-Structured-Data-1.json.
  4. När ni är nöjda, växla arbetsflödet till Active för produktionsbruk.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Bright Data-uppgifter kan löpa ut, eller så kanske din Web Unlocker-zone inte matchar vad arbetsflödet förväntar sig. Om något slutar fungera, kontrollera först din Bright Data zone-token och n8n-credentialn för Header Auth.
  • Om du använder Wait-noder eller extern rendering varierar processtider. Öka väntetiden om noder längre ned misslyckas på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet och dina riktlinjer tidigt, annars kommer du att redigera output i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av receptdata?

Cirka 30 minuter om du redan har dina Bright Data- och OpenAI-konton.

Behöver jag kodningskunskaper för att automatisera receptdata?

Ingen kodning krävs. Du klistrar mest in autentiseringsuppgifter, anger käll-URL:en och väljer vart den strukturerade outputen ska skickas.

Är n8n gratis att använda för det här arbetsflödet för automatisering av receptdata?

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 kostnader för OpenAI API och Bright Data-användning baserat på hur många sidor du skrapar.

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

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

Kan jag anpassa det här arbetsflödet för automatisering av receptdata till enbart veganska recept?

Ja, och det är en av de enklaste justeringarna. Ändra värdena i “Define Recipe Source URL” så att de pekar på en vegansk kategori-/söksida och justera sedan prompten i “Extract Recipe Structure” så att den lägger till fält som allergener, protein per portion eller “diet tags”. Om du vill ha en annan AI-leverantör byter du ut noden “OpenAI Recipe Model” mot en annan chat-modellnod och behåller samma schemaparsare. Du kan också styra om noden “Send Webhook Payload” till Slack eller ett internt API samtidigt som du fortfarande skriver filer till disk.

Varför misslyckas min Bright Data-anslutning i det här arbetsflödet?

Oftast är det en ogiltig eller utgången Web Unlocker-token i Header Auth-credentialn. Det kan också vara fel zone-namn i dina indatafält, eller att Bright Data blockerar anropet eftersom zonen inte är konfigurerad för Web Unlocker API. Om fel bara uppstår på vissa sajter, prova att lägga in en längre fördröjning mellan batcher så att du ser mindre ut som en skrapare som kör i full fart.

Hur många recept kan den här automatiseringen av receptdata hantera?

Hundratals per körning är normalt om dina Bright Data- och OpenAI-gränser stödjer det.

Är den här automatiseringen av receptdata bättre än att använda Zapier eller Make?

Ofta, ja, eftersom den här typen av skrapning + schematolkning snabbt blir komplex. n8n hanterar loopning, förgrening och strukturerad tolkning i ett och samma arbetsflöde, och self-hosting gör att du inte betalar per liten delsteg på samma sätt som många no-code-verktyg. Zapier eller Make kan fungera bra för “ny rad i Sheets → skicka meddelande”, men de är inte byggda för paginerad crawling och HTML-till-JSON-extraktion i skala. Dessutom är community-noder (som MCP-verktyg) enklare att använda på self-hostad n8n, vilket spelar roll här. Prata med en automationsexpert om du vill ha hjälp att välja.

När det här väl rullar blir receptinsamling en granskningsuppgift, inte ett datainmatningsjobb. Ärligt talat är det hela poängen.

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

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal