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: rensade listdata snabbt

Rickard Andersson Partner, Nodenordic.se

Att skrapa annonssajter ser enkelt ut tills du faktiskt gör det. Sidor laddar olika, antibot-skydd blockerar dina förfrågningar och du slutar med att copy-pasta rörig text till ett kalkylark som fortfarande måste städas upp.

Den här automatiseringen av annonsdata slår hårdast mot fastighetsanalytiker, men operatörer i proptech-team och investerare som gör veckovis dealscreening känner av det också. Du gör skyddade annonssidor till felfria, sorteringsbara rader i Google Sheets utan att lägga förmiddagarna på manuellt skrapande.

Nedan ser du vad workflowet gör, vad du får ut av det och hur du kör det stabilt (även när källsajten sätter sig på tvären).

Så fungerar den här automatiseringen

Hela n8n-workflowet, från trigger till slutligt resultat:

n8n Workflow Template: Bright Data + Google Sheets: rensade listdata snabbt

Problemet: annonsdata är rörig, blockerad och långsam att samla in

Om du någon gång har försökt bygga ett prydligt kalkylark från bostadsannonser känner du igen smärtan: det är inte ”att få tag på sidan”. Det är att få tag på sidan konsekvent, och sedan omvandla det du skrapade (HTML, markdown, märklig inbäddad JSON, halvrenderad text) till något ditt team kan filtrera, sortera och lita på. En analytiker kan bränna en hel eftermiddag på att samla 30 annonser, bara för att upptäcka att priserna är formaterade olika, adresserna är ofullständiga och sajten blockerar nästa batch. Sedan ber någon om ”samma sak för en annan stad”, och ärligt talat är det tillbaka till ruta ett.

Friktionen byggs på. Här är var det faller isär i verkligheten.

  • Antibot-skydd blockerar traditionella skrapare, vilket gör att ditt dataset får massor av luckor.
  • Rå HTML är inte analysklar, så du lägger timmar på att rensa text innan du ens kan jämföra annonser.
  • Små formateringsfel smyger sig in (en nolla som saknas, fel stadsdel), och dina slutsatser blir snabbt osäkra.
  • Utan en repeterbar pipeline blir det ett slit att skala från ”några annonser” till ”varje dag, flera marknader”.

Lösningen: Bright Data hämtar sidorna, OpenAI strukturerar dem, Sheets förblir prydligt

Det här workflowet automatiserar hela vägen från ”skyddad annons-URL” till ”användbar rad i Google Sheets”. Det börjar med att sätta käll-URL:en och din Bright Data Web Unlocker-zon, och använder sedan Bright Data för att hämta sidan även när sajten har botförsvar. Därefter kör n8n det skrapade innehållet genom ett LLM-baserat konverteringssteg som gör rörig markup till renare text som faktiskt går att parsa. Sedan extraherar OpenAI strukturerade fält (pris, adress, yta, bostadstyp, egenskaper med mera) så att du slipper etikettering för hand. Till sist slår workflowet ihop och aggregerar resultaten, sparar en strukturerad fil lokalt för granskning, lägger till resultaten i Google Sheets och kan även skicka en webhook-sammanfattning till ett annat verktyg.

Det startar med URL- och zonkonfiguration. Mitten gör två viktiga saker: ”städa texten” och ”extrahera fälten” (inklusive ett granskningsliknande extraktionsflöde om du behöver det). Avslutet är enkelt: ett pålitligt kalkylark, plus en sparad JSON-fil och en valfri webhook-push.

Det du får: automatisering vs. resultat

Exempel: så här kan det se ut

Säg att du följer 40 nya annonser varje vecka i två städer. Manuell hantering, även en snabb genomgång, tar kanske 7 minuter per annons för att öppna sidan, kopiera detaljer och städa formateringen i Sheets, vilket blir cirka 5 timmar i veckan. Med det här workflowet klistrar du in URL:erna (eller matar in dem från en annan källa), låter Bright Data hämta dem och väntar på extraktion och aggregering, vanligtvis runt 20–30 minuters körtid. Din ”mänskliga tid” blir cirka 15 minuter för uppsättning och en snabb stickprovskontroll.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Bright Data för att låsa upp skyddade annonssidor.
  • Google Sheets för att lagra och analysera extraherade rader.
  • OpenAI API-nyckel (hämta den från din OpenAI-dashboard).

Kunskapsnivå: Medel. Du kopplar in credentials, klistrar in tokens och justerar några fältmappningar utan att skriva kod.

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

Så fungerar det

En URL (och Bright Data-zon) sätter igång allt. I det här workflowet är det en manuell start, och sedan sätter ett ”set”-steg annons-URL:en och Web Unlocker-zonnamnet så att förfrågan blir repeterbar.

Bright Data hämtar sidinnehållet. n8n skickar förfrågan via Bright Data-API:et, vilket hjälper dig att undvika de vanliga blockeringarna och delvisa laddningarna som förstör dataset.

Innehållet städas och tolkas sedan. En markdown-till-text LLM-kedja gör svaret till renare text, och därefter kör OpenAI informationsextraktion för att plocka ut fälten du bryr dig om (prissättning, adress, bostadstyp, egenskaper och eventuellt ”granskningsliknande” innehåll du har konfigurerat).

Allt slås ihop och levereras dit du behöver det. n8n kombinerar de olika extraktionsflödena, aggregerar dem till en strukturerad payload, sparar en fil på disk för spårbarhet och lägger till slutraderna i Google Sheets. En webhook-förfrågan kan också skicka en sammanfattning till ett annat system.

Du kan enkelt ändra vilka fält som extraheras för att matcha ditt schema 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

Starta arbetsflödet manuellt så att ni kan testa fastighetsintelligensflödet från början till slut.

  1. Lägg till noden Manual Execution Start som din trigger.
  2. Lämna alla inställningar på standardvärdena i Manual Execution Start.

Steg 2: Anslut datakällan och hämtningsförfrågan

Ange URL:en för målfastigheten och Bright Data-zonen, och hämta sedan markdown-innehållet från Bright Data.

  1. I Assign Source URL & Zone lägger ni till två fält: url satt till https://www.redfin.com/IL/Chicago/5814-W-Roscoe-St-60634/home/13464782 och zone satt till web_unlocker1.
  2. I Bright Data API Request ställer ni in URL till https://api.brightdata.com/request och Method till POST.
  3. Aktivera Send Body och lägg till body-parametrar: zone = {{ $json.zone }}, url = {{ $json.url }}, format = raw och data_format = markdown.
  4. Autentisering krävs: Anslut era httpHeaderAuth-uppgifter i Bright Data API Request.

Tips: Om Bright Data returnerar tomt innehåll, kontrollera att värdet för zone är aktivt och att mål-URL:en är nåbar.

Steg 3: Konfigurera AI-textkonvertering och extrahering

Konvertera markdown till ren text och extrahera sedan recensioner och strukturerad fastighetsdata med parallella AI-grenar.

  1. I Markdown to Text Conversion ställer ni in Text till =You need to analyze the below markdown and convert to textual data. Please do not output with your own thoughts. Make sure to output with textual data only with no links, scripts, css etc. {{ $json.data }}.
  2. Säkerställ att OpenAI Chat for Text är ansluten som språkmodell för Markdown to Text Conversion. Autentisering krävs: Anslut era openAiApi-uppgifter i OpenAI Chat for Text (inte i chain-noden).
  3. Konfigurera Review Information Extractor med Text satt till =Extract all the reviews from the provided content {{ $json.text }} och behåll Schema Type som fromJson med det angivna JSON-schemaexemplet.
  4. Säkerställ att OpenAI Chat for Reviews är ansluten som språkmodell för Review Information Extractor. Autentisering krävs: Anslut era openAiApi-uppgifter i OpenAI Chat for Reviews.
  5. Konfigurera Structured Info Extractor med Text satt till =Extract structured data from the provided content {{ $json.text }} och behåll Schema Type som fromJson med det angivna JSON-schemaexemplet.
  6. Säkerställ att OpenAI Chat for Structured är ansluten som språkmodell för Structured Info Extractor. Autentisering krävs: Anslut era openAiApi-uppgifter i OpenAI Chat for Structured.

⚠️ Vanlig fallgrop: AI-uppgifterna måste konfigureras på OpenAI Chat for Text, OpenAI Chat for Reviews och OpenAI Chat for Structured, inte på extractor- eller chain-noderna.

Parallell körning: Markdown to Text Conversion skickar utdata till både Review Information Extractor och Structured Info Extractor parallellt.

Steg 4: Slå ihop och aggregera AI-resultaten

Kombinera AI-strömmarna och aggregera resultaten till en enda payload för nedströmsåtgärder.

  1. Anslut både Review Information Extractor och Structured Info Extractor till Combine Response Streams.
  2. I Aggregate Response Data ställer ni in Aggregate till aggregateAllItemData.

Parallell körning: Aggregate Response Data skickar utdata till Update Google Spreadsheet, Dispatch Webhook Summary och Build Binary Payload parallellt.

Steg 5: Konfigurera utdata-destinationer

Skicka data till Google Sheets, skicka en webhook-sammanfattning och skriv en lokal JSON-fil.

  1. I Update Google Spreadsheet ställer ni in Operation till appendOrUpdate, Document till [YOUR_ID] och Sheet till gid=0 (Sheet1).
  2. Mappa kolumnen data i Update Google Spreadsheet till {{ $json.data }}. Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter.
  3. I Dispatch Webhook Summary ställer ni in URL till https://example.com/webhook och lägger till body-parametern summary = {{ $json.data }}.
  4. I Build Binary Payload ställer ni in Function Code till items[0].binary = { data: { data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64') } }; return items;.
  5. I Save Structured File ställer ni in Operation till write och File Name till =d:\Realestate-StructuredData.json.

⚠️ Vanlig fallgrop: Sökvägen i Save Structured File använder en Windows-enhetssökväg. Uppdatera den om er n8n-instans kör på Linux eller Docker.

Steg 6: Testa och aktivera ert arbetsflöde

Validera hela fastighetsintelligensflödet innan ni aktiverar det för regelbunden användning.

  1. Klicka på Execute Workflow från Manual Execution Start för att köra ett manuellt test.
  2. Bekräfta att Update Google Spreadsheet lägger till eller uppdaterar en rad och att Dispatch Webhook Summary tar emot en payload.
  3. Verifiera att Save Structured File skriver Realestate-StructuredData.json med aggregerat innehåll.
  4. När allt fungerar växlar ni 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-credentials kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först din Bright Data Web Unlocker-token och zoninställningarna i Bright Data-dashboarden.
  • Om du använder Wait-noder eller extern bearbetning varierar bearbetningstiderna. Öka väntetiden om nedströms extraktionsnoder fallerar på tomma eller delvisa svar.
  • Standardprompter i OpenAI-extraktornoder är generiska. Lägg in dina kolumndefinitioner och varumärkesspecifika regler tidigt, annars kommer du att korrigera ”nästan rätt” fält varje gång du kör det.

Vanliga frågor

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

Cirka 45 minuter om dina credentials är redo.

Behöver jag kunna koda för att automatisera städning av annonsdata?

Nej. Du kommer mest att klistra in API-tokens och välja vilka fält du vill ha i arket.

Är n8n gratis att använda för det här workflowet för automatisering av annonsdata?

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 med OpenAI API-användning (ofta några dollar i månaden vid lätt skrapning) och Bright Data-användning baserat på hur många sidor du låser upp.

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

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

Kan jag anpassa det här workflowet för automatisering av annonsdata för spårning i flera städer?

Ja, och det är en av de bästa uppgraderingarna. Du kan ersätta det enskilda indata-steget ”Assign Source URL & Zone” med en lista med stads-URL:er, loopa igenom dem och mata in varje URL i Bright Data API Request. Vanliga anpassningar är att extrahera extra fält som sovrum/badrum, dagar på marknaden och närliggande skolor, samt skicka en ”ny deal”-avisering via noden Dispatch Webhook Summary.

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

Oftast beror det på en ogiltig eller utgången Web Unlocker-token i din header auth credential. Dubbelkolla Bearer-tokenvärdet och bekräfta att zonnamnet matchar det du skapade i Bright Data. Om tokenen är korrekt är nästa misstänkta mål-URL:en (omdirigeringar, geo-blockeringar eller en ändrad sidmall). Hårt skyddade sajter stryper också trafiken, så sänk tempot i körningen eller batcha URL:er i stället för att slå på med dussintals på en gång.

Hur många annonser klarar den här automatiseringen av annonsdata?

På n8n Cloud Starter kan du bekvämt köra några tusen exekveringar per månad; om du self-hostar finns ingen plattformsgräns för exekveringar och det beror mest på din server och hastigheten i Bright Data + OpenAI. I praktiken processar många team några dussin annonser per körning och schemalägger det dagligen.

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

Ofta, ja. Zapier och Make är bra för enkla ”A till B”-uppgifter, men det här workflowet drar nytta av n8n:s flexibilitet: flera extraktionsvägar, merge-/aggregate-logik och att spara filer på disk för granskning. Du slipper också betala extra för varje gren och formatteringssteg, vilket snabbt blir dyrt i skrapningsjobb. Den ärliga nackdelen är underhåll: när annonslayouten ändras kommer du att justera prompter eller valideringsregler, oavsett plattform. Vill du att någon rimlighetskontrollerar din setup, prata med en automationsexpert.

När det här väl rullar blir ditt kalkylark en källa till sanning i stället för ett dokument som är ”så gott det går”. Sätt upp det, håll fälten konsekventa och gå vidare till besluten.

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