Gemini-webbskrapning som faktiskt fungerar (kod + no-code)

Senast uppdaterad August 20, 2026
Gemini-webbskrapning som faktiskt fungerar (kod + no-code)

De flesta guider om "gemini web scraping" känns skrivna för exakt samma typ av person: en Python-utvecklare som redan har en virtuell miljö, ett Pydantic-schema och starka åsikter om async-bibliotek. Är det du, perfekt — då går vi igenom koden. Men om du jobbar med försäljning, marknadsföring eller e-handel och bara vill ha strukturerad data från ett gäng webbsidor utan att behöva lära dig vad markdownify gör, är du långt ifrån ensam.

Gemini är Googles multimodala AI-familj, och den håller snabbt på att bli en av de viktigaste motorerna för extrahering av webdata. Stack Overflows Developer Survey 2025 visade att 84% av utvecklarna använder eller planerar att använda AI-verktyg — och LLM-driven scraping är en stor del av den vågen. Men det är en rejäl skillnad mellan en "cool demo på en enda URL" och ett flöde som klarar paginering, undersidor, anti-bot-skydd och stökig HTML i stor skala. Den här guiden går igenom både Python-spåret (kod) och no-code-spåret, visar hur du väljer modell med konkret tokenberäkning, tar upp scraping av flera sidor (det steg som nästan alla andra guider hoppar över) och är ärlig med var Gemini-scraping går i gruset. När du är klar vet du vilken väg som passar ditt arbetsflöde — och hur du undviker fallgroparna som jag sett ställa till det för både utvecklare och affärsanvändare.

Vad är Gemini-webbskrapning?

Gemini-webbskrapning innebär att man skickar innehållet på en webbsida — HTML, Markdown eller till och med en skärmbild — till en av Googles Gemini-AI-modeller, som sedan tolkar sidan och returnerar strukturerad data. Inga CSS-selectors. Ingen XPath. Inga sköra regler som går sönder så fort sajten ändrar layout.

Det grundläggande arbetsflödet ser ut så här:

  1. Hämta sidan (med requests, en headless browser eller ett Chrome-tillägg)
  2. Rensa och konvertera innehållet (vanligtvis HTML → Markdown för att minska tokenkostnaden)
  3. Skicka till Gemini med ett schema som beskriver fälten du vill ha
  4. Ta emot strukturerad JSON tillbaka — redo för kalkylblad, CRM eller databas

Jämför det med klassisk scraping i BeautifulSoup eller Selenium, där du hårdkodar selectors som div.product-title > span.price och hoppas att sajten inte gör en redesign nästa tisdag. Gemini läser sidan mer som en människa gör — den förstår sammanhang, anpassar sig till layoutförändringar och hanterar rörigt format utan specialregler.

En annan sak som är värd att nämna: Gemini är inbyggt multimodal. Den kan hantera text, bilder, video, ljud, PDF:er och kod i en enda förfrågan. Det öppnar för scraping-metoder — som att skicka en skärmbild i stället för HTML — som de flesta andra LLM:er helt enkelt inte kan matcha. Vi återkommer till det senare.

Varför Gemini-webbskrapning är viktig för företagsteam

Om du undrar varför en marknadschef eller e-handelsanalytiker ska bry sig om LLM:er och webbskrapning är kortversionen: det sparar enormt mycket tid, och det går inte sönder varje gång en webbplats uppdateras.

Marknaden för web scraping software väntas växa från omkring 1 miljard dollar 2025 till över 2 miljarder dollar 2030 — och AI-driven extrahering är den snabbast växande delen. Det är inte bara hype; det speglar ett verkligt skifte i hur team samlar in data.

Så här passar Gemini-scraping in i vanliga affärsflöden:

AnvändningsområdeVad du skraparVem som gynnas
LeadgenereringKontaktuppgifter från kataloger, LinkedIn (offentligt), företagswebbplatserSälj, BDR:er
Övervakning av konkurrentpriserProduktpriser, lagerstatus, kampanjerE-handel, pristeam
Extrahering av produktkatalogerNamn, specifikationer, bilder, recensionerMerchandising, marketplace-ops
FastighetsannonserObjektinformation, priser, mäklarinfoMäklare, investerare
InnehållsinsamlingNyheter, blogginlägg, omnämnanden i sociala medierMarknadsföring, PR
Research om jobbmarknadenJobbtitlar, löner, platserHR, rekrytering

Den praktiska vinsten är dubbel. För det första slipper du cykeln med att skriva, testa och felsöka parser-skript — modellen läser sidan på nytt varje gång. För det andra behöver du inte anlita en utvecklare varje gång en sajt flyttar en <div>. Gemini gratisnivå gör experiment nästan kostnadsfritt för små jobb: ungefär 1 000 förfrågningar/dag på Flash-Lite och 100/dag på Pro, utan krav på kreditkort.

Vilken Gemini-modell ska du välja? (Flash Lite vs. Flash vs. Pro)

Alla Gemini-modeller är inte lika bra för scraping. Det här är den praktiska jämförelsen jag önskar att varje guide tog med, eftersom fel nivå antingen slösar pengar eller ger skräpdata.

Alla tre aktuella Gemini 2.5-modeller delar ett kontextfönster på 1 048 576 tokens och är multimodala. Skillnaderna ligger i pris, hastighet och hur väl de hanterar komplex extrahering.

ModellInmatningskostnad (per 1M tokens)Utmatningskostnad (per 1M tokens)Bäst förNoggrannhet i komplexa schemanHastighet
Gemini 2.5 Flash Lite~$0.025~$0.10Enkla platta data, hög volym⚠️ Har svårt med nästlade/valfria fältSnabbast
Gemini 2.5 Flash~$0.075~$0.625De flesta scrapingjobb✅ Bra för strukturerad extraheringSnabb
Gemini 2.5 Pro~$0.3125~$2.50Komplexa nästlade scheman, edge cases✅ Bäst precisionLångsammast

(Priser från Gemini Developer API. Batch API ger 50% rabatt på dessa priser.)

Gemini 2.5 Flash Lite: Snabb och billig, men se upp för luckor

Flash Lite är budgetvalet. Det passar perfekt för enkel, platt data — produktnamn, priser, listningar på en nivå — i hög volym. Men den har dokumenterade problem med valfria fält, tidsstämplar och nästlad data. En utvecklare på Googles forum rapporterade att Flash Lite "ballar ur" när scheman innehåller icke-obligatoriska egenskaper och spottar ut repetitiv text tills tokengränsen nås. Om ditt schema har mer än två nivåer av nästling, eller fält som ibland saknas på vissa sidor, kommer Flash Lite att äta både tokens och tålamod.

Gemini 2.5 Flash: Sweet spot för de flesta scrapingjobb

Flash är där jag skulle börja för nästan alla verkliga scrapingjobb. Den hanterar strukturerad extrahering bra, klarar pagineringslogik och kostar ungefär 3× mer än Flash Lite på input — men precisionen är värd det. I GPQA-nivå benchmarktester ligger Flash bara några poäng från Pro, vilket betyder att den klarar inferens, normalisering och utplattning — precis det som scraping faktiskt kräver.

Gemini 2.5 Pro: Maximal precision för komplex data

Pro är precisionsverktyget. Använd den när du extraherar djupt nästlade scheman (tänk: produktspecifikationer med flera variantgrupper, var och en med storlekar, färger och priser), eller när fabricerade fält inte är acceptabla (juridisk, finansiell eller medicinsk data). Den kostar ungefär 12× mer i input än Flash Lite, så spara den till jobb där noggrannhet är viktigare än pris.

Räkneexempel: 10 000 produktsidor

Om du förbehandlar HTML till Markdown (vilket du bör — mer om det nedan) går en typisk produktsida från cirka 20 000 tokens rå HTML till ungefär 4 000 tokens Markdown. Utdatat JSON ligger på omkring 500 tokens per sida.

ModellInmatningskostnad (40M tokens)Utmatningskostnad (5M tokens)Totalt för 10K sidor
Flash Lite$1.00$0.50~$1.50
Flash$3.00$3.13~$6.13
Pro$12.50$12.50~$25.00

Utan Markdown-förbehandling (rå HTML på ungefär 200M tokens input) ökar de här siffrorna 4–5×. Förbehandling är den enskilt mest värdefulla optimeringen i hela flödet.

Kod eller no-code: Två vägar till Gemini-webbskrapning

Här går vägen isär. Om du är utvecklare och bygger ett anpassat flöde ger Python + Gemini API maximal kontroll. Om du är affärsanvändare och behöver data nu, utan att öppna en terminal, ger en no-code AI-scraper dig resultat snabbare.

KriteriumGemini API (Python)Thunderbit (No-code)
Installationstid15–30 min (miljö, nycklar, bibliotek)< 1 min (installera Chrome-tillägg)
Kod krävsJa (Python, Pydantic)Nej
Hantering av pagineringManuell scriptingInbyggd (klick eller oändlig scroll)
Berikning av undersidorEgen kod per sajt1-klicks "Scrape Subpages"
Hantering av tokenkostnadManuell (HTML-rensning, modellval)Sköts av AI-motorn
ExportalternativJSON/CSV via skriptExcel, Google Sheets, Airtable, Notion
Bäst förUtvecklare som bygger egna pipelinesAffärsanvändare som behöver data nu

Thunderbit är no-code-alternativet vi byggt på Thunderbit — ett Chrome-tillägg som använder AI (inklusive Gemini, ChatGPT, Claude och andra i bakgrunden) för att föreslå fält, skrapa i två klick och exportera till ditt val av verktyg. Jag går igenom båda vägarna nedan.

För användare som jobbar kalkylbladsförst är Quadratic ett annat alternativ värt att känna till — ett AI-kalkylblad som kan köra Gemini-driven webbskrapning direkt i bladet. Men för arbetsflöden som börjar på en känd webbsida (produktlistor, kataloger, lead-databaser) stämmer Thunderbit bättre med hur användaren tänker.

Steg för steg: Gemini-webbskrapning med Python

Det här avsnittet är för utvecklare. Om du vill köra no-code-spåret kan du hoppa vidare.

Innan du börjar:

  • Svårighetsgrad: Medel (Python-kunskap krävs)
  • Tidsåtgång: Cirka 20–30 minuter för första scrapingkörningen
  • Det du behöver: Python 3.10+, ett Google AI Studio-konto (gratis), en mål-URL

Steg 1: Sätt upp din Python-miljö och Gemini API-nyckel

Skapa en projektmapp och en virtuell miljö, och installera sedan de bibliotek som behövs:

mkdir gemini-scraper && cd gemini-scraper
python -m venv venv && source venv/bin/activate
pip install -U google-genai requests beautifulsoup4 markdownify pydantic

Viktigt: Det enda rätta SDK:t 2026 är google-genai. Det äldre paketet google-generativeai nådde end-of-life den 2025-11-30 och är nu föråldrat. Om du ser import google.generativeai as genai i en guide är den koden inaktuell.

Hämta sedan din API-nyckel från Google AI Studio. Klicka på "Get API Key", skapa en ny nyckel och spara den som en miljövariabel:

export GEMINI_API_KEY="your-key-here"

Nu ska du ha en fungerande Python-miljö med alla beroenden installerade och din API-nyckel redo.

Steg 2: Hämta HTML från mål-sidan

Använd requests för att hämta sidan. I det här exemplet skrapar vi en produktsida:

import requests

url = "https://example.com/product/widget-pro"
response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, timeout=30)
html = response.text

Om sajten använder tung JavaScript-rendering eller anti-bot-skydd kan requests.get() ge ett tomt skal eller en 403. Vi tar upp lösningar i avsnittet om begränsningar — men för många publika sajter fungerar det här utmärkt.

Steg 3: Rensa HTML och konvertera till Markdown

Det här är steget som de flesta guider nämner men inte kvantifierar. Rå HTML för en typisk produktsida ligger på cirka 20 000 tokens. Efter att BeautifulSoup har rensat bort överflödigt innehåll och du konverterat till Markdown hamnar du ungefär på 765–4 000 tokens — en 5–10× minskning som sparar riktiga pengar och minskar hallucinationer.

from bs4 import BeautifulSoup
from markdownify import markdownify

soup = BeautifulSoup(html, "html.parser")
main = soup.select_one("main") or soup  # ta bara innehållsytan
markdown_content = markdownify(str(main))

Anropet select_one("main") plockar bort headers, footers, navigationsmenyer och scripts — allt brus som slösar tokens och förvirrar modellen. Om sajten inte använder en <main>-tagg kan du testa .product-detail, #content eller det som omsluter själva datan.

Efter det här steget ska du ha en ren Markdown-sträng med bara sidans meningsfulla innehåll.

Steg 4: Definiera ditt datschema och skicka till Gemini

Använd Pydantic för att definiera vad du vill få tillbaka. google-genai-SDK:t accepterar en Pydantic BaseModel direkt som response_schema:

from google import genai
from google.genai import types
from pydantic import BaseModel

class Product(BaseModel):
    name: str
    price: str
    sku: str | None = None
    description: str
    sizes: list[str] = []
    colors: list[str] = []

client = genai.Client()  # läser GEMINI_API_KEY från miljön

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=f"Extrahera produktdetaljer från den här sidan:\n\n{markdown_content}",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Product,
    ),
)

product = response.parsed
print(product)

Några fallgropar från den dokumenterade bugglistan:

  • Använd inte Field(default=...) i scheman som skickas till Gemini — API:t kastar ett ValueError. Skriv i stället sku: str | None = None på typnivå.
  • Håll nästlingen ytlig (max 3 nivåer). Djup nästlad struktur gör att Flash och Flash Lite kan producera rekursiv output eller oavslutade hakparenteser.
  • Markera fält som obligatoriska när du använder Flash Lite, och använd tomsträngar som markörer i stället för att utelämna fält — Flash Lites hantering av valfria fält är opålitlig.

Nu ska du ha ett parsat Product-objekt med strukturerad data från sidan.

Steg 5: Exportera och lagra din skrapade data

Spara resultatet som JSON eller CSV:

import json

with open("products.json", "w") as f:
    json.dump(product.model_dump(), f, indent=2)

För att skicka vidare till Google Sheets kan du använda biblioteket gspread. För databaser serialiserar du till det ORM du föredrar. Den strukturerade outputen från Gemini är ren nog att gå rakt in i de flesta efterföljande verktyg.

Steg för steg: Gemini-webbskrapning utan kod (med Thunderbit)

Det här är vägen för affärsanvändare — eller utvecklare som helst slipper skriva tillfälliga scraping-skript.

Innan du börjar:

  • Svårighetsgrad: Nybörjare
  • Tidsåtgång: Cirka 5 minuter för första skrapningen
  • Det du behöver: Chrome-webbläsare, Thunderbit-tillägget (gratisnivån fungerar)

Steg 1: Installera Thunderbits Chrome-tillägg

Gå till Chrome Web Store och klicka på "Add to Chrome". Registrera dig med din e-post — hela processen tar mindre än en minut. Jämför det med 15–30 minuters Python-setup ovan.

Steg 2: Öppna mål-sidan och klicka på "AI Suggest Fields"

Navigera till webbplatsen du vill skrapa — en produktlista, fastighetskatalog, lead-databas, vad det nu är. Klicka på Thunderbit-ikonen i webbläsarens verktygsfält och tryck sedan på "AI Suggest Fields."

Thunderbits AI läser sidan och föreslår kolumnnamn och datatyper automatiskt — saker som "Product Name", "Price", "Rating", "Image URL". Du kan justera kolumnnamn, ta bort fält du inte behöver eller lägga till egna AI-prompter per kolumn (till exempel "categorize as High/Medium/Low" eller "translate to English").

Du bör se en tabellförhandsvisning med dina konfigurerade kolumner innan en enda rad skrapas.

Steg 3: Klicka på "Scrape" och granska resultatet

Ett klick. Thunderbit hanterar paginering — både klickbaserade "Next"-knappar och oändlig scroll — och extraherar data till en strukturerad tabell. Du kan välja mellan:

  • Cloud Scraping: Snabbare, bearbetar upp till 50 sidor samtidigt. Fungerar på publika sajter.
  • Browser Scraping: Körs i din inloggade webbläsarflik. Använd detta för sajter som kräver autentisering (CRM, låsta kataloger, interna verktyg).

Resultatet visas i en tabell direkt i tilläggets sidopanel. Kontrollera tydliga fel innan du exporterar.

Steg 4: Exportera till Excel, Google Sheets, Airtable eller Notion

Klicka på exportknappen och välj format. Thunderbit exporterar till Excel, Google Sheets, Airtable och Notion — gratis, utan betalvägg. Bildfält laddas direkt upp till Notions och Airtables bildbibliotek, vilket är en trevlig detalj om du skrapar produktbilder eller porträtt.

Ingen JSON-parsning. Ingen scripting. Datan är redo att användas direkt.

Webbskrapning av flera sidor och undersidor med Gemini

De flesta guider slutar tyst efter en enda URL. Verkliga scrapingjobb gör inte det.

Att skrapa 500 produktsidor med paginering och detaljundersidor är ett riktigt jobb — och glappet mellan en demo på en enda URL och den verkligheten är enormt.

Hantera paginering med Gemini API (kodväg)

För URL:er med sidnummer (det vanligaste mönstret) loopar du genom sidorna tills du får ett tomt resultat:

import time

all_products = []
for page in range(1, 101):  # upp till 100 sidor
    url = f"https://example.com/products?page={page}"
    md = fetch_clean(url)  # din HTML→Markdown-funktion från tidigare
    
    response = client.models.generate_content(
        model="gemini-2.5-flash-lite",  # billigt för listningssidor
        contents=f"Extrahera produktnamn och URL:er:\n\n{md}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=list[ListingItem],
        ),
    )
    items = response.parsed
    if not items:
        break
    all_products.extend(items)
    time.sleep(4)  # respektera gratisnivåns rate limits

För cursor-baserade sajter eller sajter med oändlig scroll behöver du fånga upp det XHR-endpoint som frontend anropar (kolla fliken Network i webbläsaren) och loopa direkt mot det endpointet. Billigare än att rendera om hela sidan, och du behöver bara skicka vidare objekt till Gemini om fälten kräver LLM-rensning.

Håll koll på tokenkostnaderna här — varje sida multiplicerar notan. Använd Flash Lite för enkla listningssidor och uppgradera till Flash först när du behöver detaljextrahering.

Skrapa undersidor för rikare data (kodväg)

Det klassiska tvåstegsmönstret: Steg 1 skrapar en listningssida för URL:er, Steg 2 besöker varje detaljsida för rikare data.

# Steg 1: samla URL:er med billig Flash Lite
class Listing(BaseModel):
    product_urls: list[str]

listing = client.models.generate_content(
    model="gemini-2.5-flash-lite",
    contents=f"Extrahera produkt-URL:er:\n{listing_md}",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Listing,
    ),
).parsed

# Steg 2: extrahera detaljer med Flash
class ProductDetail(BaseModel):
    name: str
    price: str
    specs: dict[str, str]
    reviews: list[str]

for url in listing.product_urls:
    md = fetch_clean(url)
    detail = client.models.generate_content(
        model="gemini-2.5-flash",
        contents=f"Extrahera produktdetaljer:\n{md}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=ProductDetail,
        ),
    ).parsed
    # spara detaljen...
    time.sleep(0.5)

Det här fungerar, men det kräver mycket kringjobb: deduplicering av URL:er, felhantering, rate limiting, retry-logik och caching av rå HTML så att schemaändringar inte tvingar fram nya hämtningar. För 50 sidor är det hanterbart. För 5 000 bygger du i praktiken infrastruktur.

No-code-alternativet: Thunderbits inbyggda paginering och undersideskrapning

Thunderbit hanterar både klickbaserad paginering och oändlig scroll automatiskt — ingen loop-scriptning behövs. För berikning av undersidor går funktionen "Scrape Subpages" igenom varje detaljsida som länkas från listan och fyller på originaltabellen med djupare fält. Ett klick, inte ett skript.

Cloud scraping-läget kan bearbeta upp till 50 sidor samtidigt, vilket gör stor skillnad när du skrapar en produktkatalog eller fastighetskatalog i större skala. För alla som inte vill hantera Python-loopar och retry-logik är det här det praktiska valet. (För mer om att skrapa data från webbplatser till Excel har vi en separat genomgång.)

Skärmbildsscraping: Gemini’s multimodala genväg

Här är en metod som de flesta guider helt hoppar över: att skicka en skärmbild av en webbsida till Geminis vision API i stället för rå HTML. En utvecklare rapporterade att en enda skärmbild bara kostar omkring 258 tokens — jämfört med tusentals, även för rensad Markdown. Det är en dramatisk kostnadsskillnad för enkla extraktioner.

Så använder du Geminis vision API för webbskrapning

Ta en skärmbild med Playwright, koda den och skicka den till Gemini:

from playwright.sync_api import sync_playwright
from google import genai
from google.genai import types
from pydantic import BaseModel

class Product(BaseModel):
    title: str
    price: str

with sync_playwright() as p:
    page = p.chromium.launch().new_page()
    page.goto("https://example.com/product/widget-pro")
    page.wait_for_load_state("networkidle")
    png_bytes = page.screenshot(full_page=False)  # bara den del som syns direkt

client = genai.Client()
resp = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        {"inline_data": {"mime_type": "image/png", "data": png_bytes}},
        "Extrahera produkttitel och pris som JSON.",
    ],
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Product,
    ),
)
print(resp.parsed)

Enligt Googles dokumentation om bildtokens kostar en bild där båda dimensionerna är högst 384 pixlar 258 tokens. Större bilder delas upp i 768×768-rutor med 258 tokens per ruta. En kort skärmbild ovanför "the fold" (258–1 600 tokens) slår rå HTML med god marginal — men en väldigt lång fullsidesbild (~5 000 tokens) kan faktiskt bli sämre än ren Markdown (~765–1 200 tokens).

Begränsningar med skärmbildsscraping

  • Lägre precision i täta tabeller: Layout med flera kolumner, små typsnitt och överlappande element ger delvis avläsning — inte hallucinationer, men missade etiketter och feljusterade rubriker.
  • Kan inte följa länkar: Vision returnerar text, inte klickbara länkar. Ingen paginering, ingen undersideskrapning.
  • Upplösningsgräns: Text mindre än cirka 10 px läses ofta fel. Google skalar ned till ungefär 1 568 px på längsta sidan.
  • Ökad capture-overhead: Playwright-start + väntan på networkidle tar 2–5 sekunder per sida, vilket blir mycket i stor skala.

Skärmbildsscraping fungerar bäst för JS-tunga sidor, sajter med bot-blockering (där requests.get() ger 403 men en webbläsare visar sidan), och sidor med data inbäddad i diagram eller bilder. För långa, texttunga sidor är Markdown fortfarande bättre.

Thunderbits bild- och PDF-skrapning använder en liknande AI-vision-metod — släpp in en bild eller PDF och få tillbaka en strukturerad tabell, utan att behöva skriva screenshot-script eller hantera base64. (Se även: hur man konverterar bilder till Excel.)

När Gemini-webbskrapning misslyckas (och vad du ska göra i stället)

Gemini är en extraktionsmotor, inte en hämtmotor. Om du inte får fram sidinnehållet till Gemini kan den inte hjälpa dig. Punkt.

Det finns flera vanliga scenarier där hela upplägget faller ihop, och de flesta guider behandlar dem som en eftertanke. Jag vill vara rak med det här.

BegränsningVad som händerMotåtgärd
Anti-bot / CloudflareAPI-anrop blockeras; requests.get() ger 403 eller en challenge-sidaAnvänd proxies med roterande TLS-fingerprint, eller webbläsarbaserade verktyg (Thunderbits browser scraping använder din inloggade session)
Begränsningar i tokenfönstretStora sidor överskrider användbart kontextutrymme (~200K–300K för pålitlig extrahering, även om 1M tekniskt stöds)HTML→Markdown-rensning, dela upp sidor eller använd skärmbilder
Hallucination i visuellt innehållGemini gissar från alt-text eller bildtexter i stället för själva bildinnehålletValidera output; använd vision API uttryckligen för bilddata; lägg till grounding-validerare
API rate limitsBegränsas i stor skala — gratisnivån ligger på cirka 100 RPD på Pro, 1 000 RPD på Flash LiteKöhantering, batchning (50% rabatt) eller byt till färdiga verktyg
Inkonsistent extrahering (Lite-modeller)Valfria fält, tidsstämplar och nästlad data missas eller fabricerasUppgradera till Flash/Pro eller lägg till tydliga schemarestriktioner
Skyddade sajter (LinkedIn m.fl.)Ger fel eller tom dataWebbläsarbaserad scraping med aktiv session (Thunderbit stödjer detta); respektera ToS

Några av dessa förtjänar extra kontext.

Anti-bot är numera aktivt LLM-medvetet. Cloudflare blockerar AI-crawlers som standard sedan juli 2025, med 416 miljarder blockerade AI-botförfrågningar under de första fem månaderna. Datadome lade till LLM-specifik detektering 2025 och såg att LLM-bottrafiken fyrdubblades. En vanlig requests.get() + Gemini är i praktiken död mot Datadome-skyddade sajter. Fingeravtrycket är problemet, inte IP-adressen — att rotera IP räcker inte om TLS-fingerprint skriker "Python requests."

Hallucination är subtil. LLM:er som tränats för att vara hjälpsamma fyller gärna valfria fält med trovärdiga påhitt i stället för att returnera null. Jag har sett modeller gissa ett produkts varumärke från URL-slingan, dra slutsatser om valuta från TLD:n och skriva trovärdiga men falska recensionstal från skeleton loaders. Motåtgärdspaketet: strikta Pydantic-scheman, retry-loopar med valideringsfeedback, grounding-validerare som kontrollerar att extraherade värden faktiskt förekommer i käll-HMTL, samt tvåpass-extrahering (Flash extraherar, Pro validerar ett urval).

1M-tokenfönstret är inte användbart vid 1M. Forskning från Chroma och andra visar att resonemangskvaliteten försämras långt före tokengränsen. Se cirka 200K–300K tokens som den praktiska övre gränsen för strukturerad extrahering.

Beslutsträd: Vilket verktyg ska du använda?

  • Låg volym + enkla sidor + utvecklare → Gemini API gratisnivå + Python
  • Mellanvolym + komplexa scheman + utvecklare → Gemini 2.5 Flash betald + Python + strukturerad output + förbehandling
  • Valfri volym + icke-utvecklare + inloggningsvägg eller tung paginering → Thunderbit
  • Mycket hög volym + kraftigt anti-bot-skydd + verksamhetskritiskt → Hanterad scraping-infrastruktur (proxy-tjänster) + Gemini som extraktionslager

Gemini-webbskrapning: tips för att spara tid och pengar

Oavsett om du skriver Python eller klickar i gränssnittet sparar de här tipsen dig mycket huvudvärk.

  1. Förbehandla alltid HTML till Markdown innan du skickar till Gemini. 5–10× tokenbesparing är vanligt; 95% är möjligt om du dessutom förkortar med BeautifulSoup.
  2. Använd bara google-genai. Använd inte det föråldrade paketet google-generativeai — det är EOL.
  3. Börja med Flash Lite bara för platta scheman. Uppgradera till Flash så fort nästling eller valfria fält dyker upp.
  4. Undvik Field(default=...) i Pydantic-scheman som du skickar till Gemini. Använd sku: str | None = None på typnivå.
  5. Pydantic + response_schema är avgörande — det är både ett kontrakt och ett skydd mot hallucinationer.
  6. Använd Batch API för jobb över 1 000 sidor — 50% rabatt och räknas inte mot realtids-RPM.
  7. Validera ett slumpmässigt urval på 10–50 rader manuellt innan du skalar upp en ny extractor. Noggrannhetsdrift syns inte förrän du tittar.
  8. Cacha rå HTML till disk — schemaändringar ska inte tvinga fram nya hämtningar.
  9. Spara käll-URL på varje rad så att du kan skrapa om enskilda sidor utan att köra om hela jobbet.
  10. För no-code-användare: använd egna AI-prompter per kolumn i Thunderbit för att flytta prompt engineering till kalkylbladslagret — översätt, kategorisera och sammanfatta på kolumnnivå.

Och en sak till: släpp inte gratisnivån i produktion. Gränserna sänktes 50–80% i december 2025 och kan sänkas igen utan förvarning.

Avslutning

Avståndet mellan en Gemini-demo på en enda URL och ett produktionsflöde är större än de flesta guider låtsas om.

Python + Gemini API ger utvecklare full kontroll över modellval, förbehandling, paginering och schemadesign. No-code-spåret — verktyg som Thunderbit — ger affärsanvändare samma strukturerade extrahering utan att behöva öppna en terminal.

Det här är det jag skulle ta med mig:

  • Modellval spelar roll. Flash Lite för volym, Flash för balans, Pro för komplexitet. Välj inte bara det billigaste alternativet och undra varför datan blir fel.
  • Skrapning av flera sidor och undersidor är där guiderna brister — och där det riktiga arbetet händer. Båda vägarna här täcker just det gapet.
  • Ärliga begränsningar sparar tid. Om en sajt blockerar API-anrop hjälper ingen prompt engineering i världen. Välj rätt verktyg för jobbet, inte det flashigaste.
  • Att förbehandla HTML till Markdown är den enskilt mest värdefulla optimeringen — det sänker kostnaderna med över 75% och minskar hallucinationer.

Om du vill testa no-code-spåret låter Thunderbits gratisnivå dig skrapa några sidor och själv se resultatet. Om du föredrar kod räcker Geminis gratis API-nivå för att prototypa ett flöde under en eftermiddag. Oavsett väg får du strukturerad data snabbare än vad kopiera-klistra någonsin kan ge. För mer om att extrahera data från webbplatser till Excel eller de bästa AI-webbskraparna har vi gått igenom det i detalj på bloggen.

Testa Thunderbit för AI-webbskrapning Get Started Free

Vanliga frågor

Hur mycket kostar det att använda Gemini för webbskrapning?

Gemini API har en gratisnivå med ungefär 100 förfrågningar/dag på Pro, 500/dag på Flash och 1 000/dag på Flash Lite (i början av 2026 — dessa gränser sänktes i december 2025). På betald nivå kostar skrapning av 10 000 produktsidor ungefär 1,50 dollar med Flash Lite, 6 dollar med Flash eller 25 dollar med Pro — förutsatt att du förbehandlar HTML till Markdown först. Utan förbehandling ökar kostnaden 4–5×. Batch API ger 50% rabatt för jobb som inte måste köras i realtid.

Kan Gemini skrapa webbplatser som kräver inloggning?

Geminis API kan inte logga in på webbplatser av sig självt — det bearbetar bara innehållet du skickar till det. Du behöver själv hämta HTML med din egen autentiserade session (t.ex. med en headless browser och sparade cookies). Thunderbits Browser Scraping-läge hanterar detta inbyggt: det körs i din inloggade Chrome-flik, så varje sajt du kan se i webbläsaren kan Thunderbit skrapa.

Är Gemini-webbskrapning laglig?

Lagligheten beror på sajtens användarvillkor, datatypen och din jurisdiktion. I USA, efter hiQ v. LinkedIn och Meta v. Bright Data, anses scraping av offentligt tillgänglig data utan inloggning i allmänhet vara tillåten — men varje fall är specifikt. Scraping bakom inloggning innebär högre juridisk risk. Personuppgifter från EU-medborgare omfattas av GDPR oavsett om sajten är offentlig eller inte. Respektera alltid robots.txt och användarvillkor, och undvik att skrapa personuppgifter utan laglig grund.

Kan jag använda Gemini för att skrapa dynamiska JavaScript-tunga sajter?

Ja, men du måste rendera JavaScript först — antingen med en headless browser (Playwright, Puppeteer) eller genom att fånga upp sajtens API-endpoints direkt. När du har den renderade HTML:n rensar du den och skickar den till Gemini som vanligt. Alternativt kringgår skärmbildsscraping med Geminis vision API hela JS-renderingen — om det visas i en webbläsare kan Gemini se det. Thunderbit hanterar JS-renderade sidor automatiskt i både Cloud- och Browser-lägen.

Vad är skillnaden mellan att använda Gemini för scraping och ett dedikerat verktyg som Thunderbit?

Gemini är en extraktionsmotor — den tolkar innehåll och returnerar strukturerad data. Den besöker inte webbplatser, hanterar inte paginering, autentisering eller export till kalkylblad. Du behöver fortfarande något som hämtar sidinnehållet till Gemini och något som gör användbara saker med outputen. Dedikerade verktyg som Thunderbit kombinerar hämtning, rendering, AI-extrahering, paginering, berikning av undersidor och export i ett enda paket — utan extra kringkod.

Läs mer

Shuai Guan
Shuai Guan
VD på Thunderbit | Expert på AI-driven dataautomatisering Shuai Guan är VD för Thunderbit och alumn från University of Michigan Engineering. Med nästan tio års erfarenhet inom teknik och SaaS-arkitektur är han specialiserad på att omvandla avancerade AI-modeller till praktiska, kodfria verktyg för datautvinning. På den här bloggen delar han raka, beprövade insikter om webbskrapning och automatiseringsstrategier som hjälper dig att bygga smartare, datadrivna arbetsflöden. När han inte optimerar dataflöden ägnar han samma detaljblick åt sin passion för fotografi.
Innehållsförteckning
Thunderbit · AI-agent för webbdata

Extrahera data från vilken sida som helst på 1 klick

Betrodd av över 250 000 användare
gratis plan tillgänglig
Från webbsida till kalkylark
Beskriv vad du behöver — Thunderbits AI-agent samlar in det och exporterar till Excel, Google Sheets, Airtable eller Notion. Gratis att börja med.
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week