Sidste uge bad en kollega fra vores salgsteam mig om hjælp til at hente kontaktoplysninger fra omkring 200 erhvervsprofilsider. Hans plan? At kopiere og indsætte dem alle i et regneark. Jeg foreslog, at han i stedet prøvede ChatGPT til at generere en Python-scraper. Tyve minutter senere havde han et script. Tredive minutter efter det skrev han til mig: "Det virkede på de første fem sider og så… stoppede det bare."
Den oplevelse er overraskende almindelig. ChatGPT er virkelig god til at skrive scraping-kode — indtil den ikke er det. Og de fleste guides online stopper ved “se, det virker på denne testside”-stadiet, så du står alene, så snart du rammer en rigtig side med JavaScript, anti-bot-beskyttelse eller pagination. I denne guide gennemgår jeg, hvordan ChatGPT-webscraping faktisk ser ud i praksis: hele workflowet, fem genanvendelige prompt-skabeloner (ikke bare ét eksempel), en ærlig gennemgang af, hvor det går galt, og hvad du gør, når det sker — inklusive no-code-alternativer som Thunderbit, der springer koden helt over.
Hvad er ChatGPT-webscraping?
“ChatGPT-webscraping” betyder at bruge ChatGPT til at hjælpe dig med at udtrække data fra websites. Men der er en vigtig forskel, som de fleste overser: ChatGPT scraper ikke selv websites. Den kan ikke besøge en URL, hente HTML eller klikke sig gennem sider. Det, den kan gøre, er at generere den kode (typisk Python), der gør det, eller analysere rå HTML, som du indsætter i chatten, og returnere strukturerede data.
Der er to hovedmetoder:
- ChatGPT som kodegenerator: Du beskriver siden og de data, du vil have, og ChatGPT skriver et Python-script (typisk med BeautifulSoup, Selenium eller Playwright), som du selv kører lokalt.
- ChatGPT som dataparser: Du kopierer rå HTML ind i chatten (eller uploader den via Code Interpreter), og ChatGPT udtrækker de felter, du har brug for, til JSON- eller CSV-format.
I begge tilfælde er det dig, der står for hentning og afvikling. ChatGPT er hjernen, ikke hænderne. Selv med den nyere ChatGPT Atlas-browser (lanceret i oktober 2025), som kan browse nettet samtalebaseret, giver den svar — ikke strukturerede CSV-tabeller med 500 produktlinjer. Det er en browsing-assistent, ikke en dataekstraktionspipeline.
Hvorfor bruge ChatGPT til webscraping? Og hvem er det til?
ChatGPT sænker adgangsbarrieren til webscraping markant. Ifølge 2025 Stack Overflow Developer Survey bruger eller planlægger 84% af udviklere nu AI-værktøjer i deres workflow, og ChatGPT ligger i front med 82% andel. Men målgruppen for “ChatGPT-webscraping” er ikke kun udviklere. Det er SDR’er, der bygger prospect-lister, ecommerce-managers, der følger konkurrentpriser, ejendomsanalytikere, der henter boligdata, og marketingteams, der samler indhold.
Her er et hurtigt overblik over typiske use cases og hvem de hjælper:
| Use Case | Hvem får værdi | Hvad du scraper |
|---|---|---|
| Udhentning af salgsleads | SDR'er, sales ops | Navne, e-mails, telefonnumre fra kataloger |
| Overvågning af konkurrentpriser | Ecommerce, pricing teams | Produktnavne, priser, lagerstatus, SKU'er |
| Markedsresearch | Analytikere, founders | Virksomhedsinfo, anmeldelser, ratings, funktionslister |
| Indsamling af ejendomsdata | Mæglere, investorer | Boligpriser, adresser, værelser/badeværelser, mæglerinfo |
| Indsamling af indhold | Marketing-, SEO-teams | Artikeltitler, URL'er, publiceringsdatoer, forfattere |
At kopiere data manuelt fra 100 sider kan tage 3–5 timer. Et ChatGPT-genereret script kan gøre det samme på få minutter — hvis det virker. Og det dér “hvis” er hele pointen med denne artikel.
Gartner forudser, at udviklere uden for formelle IT-afdelinger i 2026 vil udgøre mindst 80% af brugerne af low-code-værktøjer. De mennesker, der søger efter “ChatGPT web scraping”, er i stigende grad ikke-udviklere, som vil have data uden at hyre en ingeniør. For dem er ChatGPT første stop — og værktøjer som Thunderbit er det, de griber til, når scriptet nægter at køre.
Sådan fungerer ChatGPT-webscraping: trin for trin
Her er hele workflowet fra start til slut, med en virksomhedsfortegnelse som eksempel — ikke en legetøjsside.
- Sværhedsgrad: Mellem (du skal kunne køre Python på et grundlæggende niveau)
- Tidsforbrug: Ca. 15–30 minutter til første scrape
- Det skal du bruge: Chrome-browser, et Python-miljø (Python 3.10+), ChatGPT (gratis version virker), og en mål-URL
Trin 1: Undersøg websitet og identificér de data, du skal bruge
Åbn siden, du vil scrape, i Chrome. Højreklik på et datapunkt, du vil hente (for eksempel et firmanavn), og vælg Inspect. Det åbner Chrome DevTools og fremhæver HTML-elementet.
Kig efter CSS-selectors — ting som h2.business-name, span.phone eller a.website-link. Jo mere præcise dine selectors er, desto bedre bliver ChatGPT’s output. Kopiér et repræsentativt HTML-udsnit (ét “kort” eller én “række” data), som du kan indsætte i din prompt.
På dette tidspunkt bør du have en kort liste med feltnavne (fx business_name, phone, website_url) og deres tilhørende CSS-selectors.
Trin 2: Skriv en detaljeret ChatGPT-prompt
Det er her, de fleste guides fejler — de giver dig en vag prompt og håber på det bedste. En god scraping-prompt har seks dele:
- Sprog og bibliotek: “Skriv et Python 3.11-script med BeautifulSoup 4.”
- Mål-URL: Den præcise side, der skal scrapes.
- CSS-selectors: For hvert felt den selector, du fandt i trin 1.
- Output-format: CSV, JSON eller begge dele.
- Særlige instruktioner: Kodning, fejlhåndtering, forsinkelser.
- HTML-udsnit: Indsæt 20–40 linjer af den faktiske HTML, så ChatGPT kan se strukturen.
Her er et eksempel på en prompt (med forklaringer):
Du er en senior Python-ingeniør. Skriv en webscraper i Python 3.11 med BeautifulSoup 4.
Mål-URL: https://example.com/businesses
Mål: Udtræk hvert virksomhedskort på siden og returnér én række pr. virksomhed.
Nødvendige felter (CSS-selectors i parentes):
- business_name (h2.biz-name)
- phone (span.phone-number)
- website_url (a.biz-link, href)
- rating (div.stars[data-rating])
Output: gem til businesses.csv med UTF-8-kodning og en header-række.
Krav:
- Brug requests med en realistisk User-Agent-header
- Håndter manglende felter pænt (None, ikke crash)
- Udskriv antallet af udtrukne virksomheder til sidst
- Tilføj 1 sekunds forsinkelse mellem requests, hvis du looper
Her er et repræsentativt HTML-udsnit fra siden (ét virksomhedskort):
<INDSÆT 20-40 LINJER AF DEN FAKTISKE HTML HER>
Tip: At inkludere HTML-udsnittet er den største enkeltfaktor for bedre præcision. ChatGPT kan ikke besøge URL’en, så uddraget er dens eneste kilde til sandheden.
Trin 3: Gennemgå og test den genererede kode
Kør ikke bare ChatGPT’s kode blindt. Læs den først igennem. Hold øje med:
- Hallucinerede selectors: ChatGPT opfinder nogle gange CSS-klasser, der ikke findes på siden.
- Manglende biblioteker: Sørg for, at
pip install requests beautifulsoup4(ellerplaywright, osv.) er med. - Hardcoded værdier: Tjek at URL, feltnavne og filstier er korrekte.
Opsæt et Python virtual environment, installér dependencies, og kør scriptet på et lille sample (en eller to sider). Tjek output-CSV’en — er kolonnerne udfyldt? Er der tomme felter, hvor du forventede data?
Trin 4: Forbedr med opfølgende prompts
ChatGPT er stærkest i iteration. Hvis det første script kun henter side 1, så spørg:
“Scriptet scraper kun den første side. Kan du tilføje pagination, så det scraper alle sider? Sitet bruger ?page=1, ?page=2 osv. Stop, når en side returnerer nul resultater, eller efter 50 sider.”
Hvis felter mangler, så bed ChatGPT om at tilføje regex-fallbacks til e-mails eller telefonnumre. Hvis sitet er tungt på JavaScript, så bed om en Playwright-version. Hver opfølgende prompt bygger videre på den forrige kode — tænk på det som pair programming med en meget hurtig (men nogle gange lidt for selvsikker) makker.
5 copy-paste ChatGPT-promptskabeloner til webscraping
Jeg har ikke fundet en anden guide, der tilbyder dette. Jeg har udarbejdet, testet og finjusteret fem promptskabeloner organiseret efter scenarie. Kopiér dem, udskift URL og HTML-udsnit, og ChatGPT vil give dig brugbar kode i første forsøg — eller meget tæt på.
Skabelon 1: Scraper til listingsider (produktkataloger, kataloger)
Hvornår du skal bruge den: Du er på en side med mange elementer (produkter, virksomheder, jobopslag) og vil have én række pr. element.
Du er en senior Python-ingeniør. Skriv en webscraper i Python 3.11 med BeautifulSoup 4.
Mål-URL: [DIN URL]
Mål: Udtræk hvert item-kort på siden og returnér én række pr. item.
Nødvendige felter (CSS-selectors i parentes — udledt via Inspect):
- [felt_1] ([selector_1])
- [felt_2] ([selector_2])
- [felt_3] ([selector_3])
- [felt_4] ([selector_4, attribut hvis nødvendigt])
Output: gem til items.csv med UTF-8-kodning og en header-række.
Krav:
- Brug requests med en realistisk User-Agent-header
- Håndter manglende felter pænt (None, ikke crash)
- Udskriv antallet af udtrukne items til sidst
- Tilføj 1 sekunds forsinkelse mellem requests, hvis du looper
Her er et repræsentativt HTML-udsnit fra siden (ét item-kort):
[INDSÆT 20-40 LINJER AF DEN FAKTISKE HTML HER]
Forventet output: En CSV-fil med én række pr. item og kolonner, der matcher dine feltnavne.
Skabelon 2: Scraper til detail-/undersider (enkeltprodukt eller profilside)
Hvornår du skal bruge den: Du har én side med rige detaljer (en produktside, en persons profil, en boligannonce) og vil udtrække alt til én struktureret post.
Skriv en Python-funktion `scrape_detail(url)` der tager en detail-side-URL og returnerer en dict med disse keys:
- [felt_1]
- [felt_2]
- [felt_3]
- [felt_4]
- [felt_5]
Brug BeautifulSoup. Håndtér manglende felter pænt (returnér None for dem).
Inkludér regex-fallbacks til e-mail og telefon — ikke alle sider pakker dem ind i ensartede tags.
Returnér dict’en, og tilføj den også som én række til details.csv (opret filen med header ved første kald).
Reference-HTML fra en rigtig detail-side:
[INDSÆT 40-60 LINJER AF HTML FRA ÉN DETAIL-SIDE]
Forventet output: En dict pr. side og en voksende CSV-fil med én række pr. detail-side.
Skabelon 3: Scraper til dynamiske/JS-renderede sider (Playwright)
Hvornår du skal bruge den: Siden loader indhold via JavaScript (React, Angular osv.) — du ser en tom <div id="root"> i HTML-kilden.
Skriv en Python-webscraper med Playwright (sync API) til en JavaScript-renderet side.
Mål-URL: [DIN URL]
Mål: udtræk alle resultskort, der vises efter at siden er færdig med at loade dynamisk.
Krav:
- Brug `page.wait_for_selector('[DIN KORT-SELECTOR]', timeout=15000)` for at vente på indhold
- Scroll til bunden af siden to gange med 1 sekunds pause mellem scrolls for at trigge lazy-loaded resultater
- For hvert kort udtræk: [felt_1], [felt_2], [felt_3], [felt_4]
- Gem til results.json som en liste af dicts, UTF-8
- Kør headless=False først (så jeg kan se det), og tilføj en 2 sekunders pause til sidst, før du lukker
Brug ikke requests eller BeautifulSoup — kun Playwright.
Forventet output: En JSON-fil med ét objekt pr. resultatskort, hvor alle felter er udfyldt.
Skabelon 4: Pagination-håndtering (scraping af flere sider)
Hvornår du skal bruge den: Du har allerede en fungerende scraper til én side og skal løbe gennem alle sider.
Tag den eksisterende BeautifulSoup-scraper nedenfor, og pak den ind i et pagination-loop, der henter ALLE sider, ikke kun side 1.
Sitet bruger URL-param-pagination: ?page=1, ?page=2 osv.
Stopbetingelse: når den aktuelle side giver nul items, ELLER når response status ikke er 200, ELLER når du rammer side 100 (sikkerhedslimit).
Tilføj:
- En venlig forsinkelse på 1,5 sekund mellem side-requests
- Et try/except omkring hver request, der logger fejlen og fortsætter
- En statusopdatering for hver 5. side: "Side 15 → 300 items indtil nu"
- Endelig gemning til items_all.csv
Eksisterende scraper:
[INDSÆT DIN NUVÆRENDE SCRAPER TIL ÉN SIDE HER]
Forventet output: Én samlet CSV med alle items fra alle sider plus konsoloutput, der viser fremdrift.
Skabelon 5: Datarydning og strukturering ("indsæt HTML"-metoden)
Hvornår du skal bruge den: Du har allerede rå HTML (fra curl, din browser eller en fil) og vil bare have ChatGPT til at parse det til rene, strukturerede data — uden kode.
Jeg vil indsætte rå HTML fra en produktside. Du behøver ikke skrive kode — returnér blot de udtrukne data som et JSON-objekt, der matcher dette skema:
{
"name": string,
"brand": string,
"price": number,
"currency": string (ISO 4217),
"availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
"rating": number (0-5) or null,
"review_count": integer or null,
"description": string (max 500 chars),
"key_specs": [{"name": string, "value": string}]
}
Brug null for alt, du virkelig ikke kan finde — gæt IKKE.
Returnér KUN JSON-objektet, ingen forklaring, ingen markdown-fence.
HTML:
[INDSÆT HELE SIDENS HTML HER]
Forventet output: Ét JSON-objekt, klar til at blive brugt i et regneark eller en database.
Hvor ChatGPT-webscraping går i stykker (ærlige begrænsninger)
De fleste guides springer helt over dette. Jeg har brugt nok tid på at debugge ChatGPT-genererede scrapers til at vide præcis, hvor de falder fra hinanden — og 2025 Stack Overflow-undersøgelsen bekræfter, at kun 3% af udviklere har “stor tillid” til AI-output. Her er hvorfor.
JavaScript-tunge og dynamiske websites
Over 98,8% af websites bruger JavaScript til client-side-funktionalitet. Alene React kører nu på 7,2% af alle websites — et stigning på cirka 67% på et enkelt år. Når du beder ChatGPT om at “scrape denne side”, er standardoutputtet et requests + BeautifulSoup-script. Det script henter rå HTML — og på et React- eller Angular-site er den rå HTML bare en tom <div id="root">. De faktiske data loader først, efter JavaScript er kørt, hvilket requests aldrig gør.
ChatGPT kan generere Selenium- eller Playwright-kode, hvis du beder om det, men de scripts er langsommere (Playwright ligger i gennemsnit på 2,9 sekunder pr. sideindlæsning mod under ét sekund for statiske requests) og kræver ofte fejlfinding af wait-betingelser, scroll-triggere og element-selectors, som ChatGPT gætter forkert.
Anti-bot-beskyttelse og CAPTCHA’er
Cloudflare beskytter cirka 20% af alle websites, og tjenester som DataDome hævder 99,9% nøjagtighed i bot-detektion. En ren requests.get() med en Python user-agent er, for at sige det ligeud, et klassisk bot-fingerprint. ChatGPT-genererede scripts indeholder ingen proxy-rotation, ingen TLS-fingerprinting-spoofing, ingen cookie-håndtering og ingen CAPTCHA-løsning. På ethvert kommercielt site med selv basal beskyttelse bliver scriptet blokeret ved første request.
Pagination og scraping i stor skala
ChatGPT’s standard-pagination-loop itererer ?page=N eller klikker på en .next-knap. Rigtige websites bruger cursor-baseret pagination, infinite scroll med IntersectionObserver eller GraphQL-kald. ChatGPT kan ikke generere korrekt kode til det, medmindre du viser den præcise netværksanmodning — og selv da er loopene skrøbelige. Oxylabs’ ChatGPT scraping-guide og Decodos 2026-tutorial fremhæver begge pagination som det sted, hvor deres eksempel-scrapers oftest kræver en anden eller tredje prompt.
Løbende og planlagt scraping
ChatGPT giver dig et engangs-script. Der er ingen scheduler, ingen ændringsdetektion, ingen alarmering. Hvis du vil have “tjek konkurrentpriser hver morgen”, skal du lære cron, Airflow eller Lambda — intet af det dækker ChatGPT i sit første svar. For forretningsbrugere, der har brug for tilbagevendende data, er det en blindgyde.
Hastigheds- og omkostningsproblemet
For JS-tunge sites ligger de reelle tider pr. side med Selenium eller Playwright på 3–10 sekunder pr. side under ideelle forhold og 40–60 sekunder pr. side med retries og anti-bot-ventetid — en frustration, som ofte rapporteres i fora og tutorials.
Hvis du bruger ChatGPT API til at parse HTML ("indsæt HTML"-metoden i stor skala), løber token-omkostninger hurtigt op. Med nuværende GPT-4o-priser (~$2.50/M input tokens, $10/M output) koster parsing af 1.000 produktsider omtrent $95–$105 kun i tokens. Med GPT-4o mini er det omkring $6.50 for samme volumen. Læg proxy-omkostninger ($3–10/GB), vedligeholdelse af en lokal crawler og udviklerarbejde oveni, og “brug bare ChatGPT” begynder at se dyrt ud.
| Skala | GPT-4o-tokenomkostning (est.) | GPT-4o Mini-tokenomkostning (est.) |
|---|---|---|
| 100 sider | ~$9.55 | ~$0.65 |
| 1.000 sider | ~$95.50 | ~$6.50 |
| 10.000 sider | ~$955 | ~$65 |
Estimaterne antager ca. 50K input tokens og ca. 2K output tokens pr. side. De faktiske omkostninger varierer efter sidestørrelse og output-kompleksitet.
ChatGPT-webscraping vs. no-code AI-scrapers vs. custom code: beslutningsramme
Ikke alle scraping-opgaver kræver det samme værktøj. Det her er den beslutningsramme, jeg har brugt hos Thunderbit efter at have testet alle tre tilgange på rigtige projekter.
| Scenarie | ChatGPT + Python | No-code AI Scraper (f.eks. Thunderbit) | Custom code + proxies |
|---|---|---|---|
| Simple statiske sider | ✅ Godt — hurtigt at generere | ✅ Virker, kan være overkill | ⚠️ Overkonstrueret |
| JS-renderet / dynamisk indhold | ⚠️ Kræver Selenium/Playwright — kode går ofte i stykker | ✅ Håndteres via browser/cloud-scraping | ✅ Fuld kontrol |
| Sider med anti-bot/CAPTCHA | ❌ ChatGPT kan ikke løse CAPTCHA'er | ✅ Cloud scraping-infrastruktur håndterer mange | ✅ Med proxy-rotation |
| Pagination (100+ sider) | ⚠️ Skrøbelige loops, kræver debugging | ✅ Indbygget pagination-support | ✅ Robust med engineering |
| Ikke-udvikler-bruger | ❌ Kræver Python-kendskab | ✅ 2 klik, ingen kode | ❌ Kræver kodning |
| Løbende/planlagt scraping | ❌ Manuel genkørsel | ✅ Funktion til planlagt scraping | ✅ Med cron/orchestration |
| Export til Sheets/Airtable/Notion | ⚠️ Kræver ekstra kode | ✅ Native one-click export | ⚠️ Ekstra integrationskode |
Kort sagt: brug ChatGPT til hurtige engangsscripts og til at lære. Brug et no-code-værktøj som Thunderbit til produktion, tilbagevendende eller ikke-udvikler-scraping. Brug custom code + proxies til enterprise-projekter, hvor du har brug for fuld kontrol.
No-code-alternativet: sådan håndterer Thunderbit webscraping uden kode
For læsere, der ikke koder — eller som har brugt nok aftener på at debugge ChatGPT-scripts — er der en helt anden vej. ChatGPT genererer koden. Thunderbit springer den over.
Jeg arbejder på Thunderbit-teamet, så det vil jeg være åben om. Men jeg mener også oprigtigt, at det er den hurtigste vej for de fleste forretningsbrugere. Sådan ser workflowet ud.
AI Suggest Fields: Auto-detect datastrukturen på enhver side
Åbn en hvilken som helst side, klik på Thunderbit Chrome-udvidelsen, og tryk på “AI Suggest Fields.” Thunderbit’s AI læser den renderede side — inklusive JS-loadet indhold — og foreslår kolonnenavne og datatyper. Ingen Inspect, ingen CSS-selectors, ingen prompt engineering. Klik derefter på “Scrape.”
Sammenlign det med ChatGPT-metoden: åbn DevTools, find selectors, skriv en prompt, gennemgå koden, installér dependencies, kør scriptet, tjek output, iterér. Thunderbit komprimerer alt det til to klik.
Subpage scraping til automatisk berigelse af listings
Når du har scraped en listing-side, klik på “Scrape Subpages.” Thunderbit besøger hver rækkes detail-side og tilføjer ekstra felter — som e-mail, telefon eller bio — til din eksisterende tabel. Med ChatGPT skulle du bruge et separat script, et loop, fejlhåndtering for hver underside og en måde at flette dataene sammen på. Thunderbit klarer det i ét trin.
Export hvor du vil: Google Sheets, Airtable, Notion, Excel
Thunderbit tilbyder gratis, ét-klik export til Google Sheets, Airtable, Notion og Excel — ikke kun CSV. Et ChatGPT-genereret script skriver typisk til en lokal CSV- eller JSON-fil. At sende data til Sheets eller Airtable kræver ekstra biblioteker og autentificeringskode.
Cloud scraping vs. browser scraping
Thunderbit giver dig to tilstande. Cloud scraping kører på Thunderbit’s servere, håndterer ca. 50 sider pr. batch og er hurtigt til offentlige sider. Browser scraping bruger din loggede session til beskyttede sider eller sider bag login. Med ChatGPT skulle du konfigurere proxies, cookies og session-håndtering i kode — hver især et separat debugging-eventyr.
Under motorhjelmen bruger Thunderbit flere AI-modeller (inklusive ChatGPT, Gemini, Claude og andre) til visuelt at læse sider og afgøre, hvad der skal udtrækkes. Så på en måde bruger Thunderbit allerede ChatGPT — plus tre andre frontier-modeller — og håndterer hentning, rendering, anti-bot, pagination og eksport for dig.
Virkelige use cases: salg, ecommerce og ejendom
De fleste ChatGPT-scraping-guides bruger “Books to Scrape” eller et andet testsite. Her er, hvordan rigtig business-scraping ser ud — både med ChatGPT-tilgangen og Thunderbit-genvejen.
Udhentning af salgsleads fra virksomhedsfortegnelser
Scenario: Du har brug for navne, e-mails og telefonnumre fra et virksomhedsregister til outbound-salg.
ChatGPT-tilgang: Brug Skabelon 1 (listingside) til at scrape registeret, og brug derefter Skabelon 2 (detail-side) til at besøge hver profil for kontaktinfo. Du får brug for regex-fallbacks til e-mails og telefonnumre, en høflig forsinkelse og en dedupe-gennemgang. Forvent 30–60 minutter til opsætning og fejlfinding.
Thunderbit-tilgang: Åbn registeret, klik på “AI Suggest Fields”, scrape listing-siden, og klik derefter på “Scrape Subpages” for at hente kontaktoplysninger fra hver profil. Export til dit CRM-klare regneark. Samlet tid: ca. 3 minutter. Thunderbit’s indbyggede e-mail- og telefonudtrækkere klarer parsing automatisk.
Overvågning af konkurrentpriser i ecommerce
Scenario: Du vil følge konkurrenters produktpriser, lagerstatus og SKU’er på ugentlig basis.
ChatGPT-tilgang: Generér en scraper med Skabelon 1, tilføj pagination med Skabelon 4, og kør den manuelt hver uge. Hvis konkurrenten ændrer sidens layout, går selectors i stykker, og du starter forfra.
Thunderbit-tilgang: Sæt scrapers op én gang, brug Thunderbit’s planlagte cloud scraping til at køre dagligt eller ugentligt, og exportér til Google Sheets. AI’en læser side-strukturen igen ved hver kørsel, så layoutændringer ikke ødelægger noget. For mere om dette workflow, se vores guide til price scraping.
Indsamling af ejendomsannoncer
Scenario: Du har brug for boligpriser, adresser, værelser/badeværelser og mæglerinfo fra et annoncesite.
ChatGPT-tilgang: De fleste ejendomssites (Zillow-lignende) er React-SPA’er med aggressiv anti-bot-beskyttelse. Et requests + BeautifulSoup-script returnerer en tom side. En Playwright-version bliver rate limited inden for få minutter.
Thunderbit-tilgang: Cloud scraping med AI-feltdetektion håndterer JS-renderingen og tilpasser sig layoutændringer. Ejendomsportaler redesigner ofte — Thunderbit’s AI læser siden frisk hver gang, så du ikke behøver opdatere selectors. Se vores guide til webscraping af ejendomme for en gennemgang.
Mere end engangs-scrapes: ChatGPT API-pipelines vs. Thunderbit Extract API
Hvis du bygger scraping ind i et produkt eller en pipeline, ændrer spørgsmålet sig: ChatGPT API til HTML-parsing eller en API, der er bygget specifikt til scraping?
Brug af ChatGPT API til at parse HTML
Tilgangen: brug en lokal crawler (requests, Playwright) til at hente HTML, og send derefter HTML’en til OpenAI’s API for at udtrække struktureret JSON. Det er “indsæt HTML”-smuthullet i skala.
Det virker. Omkostninger og vedligehold er dog reelle. Med GPT-4o-priser koster 1.000 sider omkring $95 i tokens. Du skal selv håndtere crawler, proxies, prompt engineering og outputskema. Når siden ændrer sig, går prompten i stykker, og du skal finjustere igen.
Thunderbit Extract API: bygget til strukturerede webdata
Thunderbit’s Open API tilbyder en anden model. Du definerer et JSON Schema, sender en URL via POST og får strukturerede data tilbage. JS-rendering og anti-bot-håndtering er indbygget. Batch processing understøtter op til 100 URLs pr. request.
| Funktion | ChatGPT API + custom code | Thunderbit Extract API |
|---|---|---|
| Struktureret output | Manuel schema i prompt | Defineret via JSON Schema |
| JS-rendering | Du håndterer det (Playwright osv.) | Indbygget (flere render-tilstande) |
| Anti-bot / CAPTCHA | Du håndterer det (proxies osv.) | Håndteres automatisk |
| Batch processing | Du bygger loopet | Batch-endpoint (op til 100 URLs) |
| Vedligehold | Prompts går i stykker, kode forældes | Administreret AI-motor |
For teams, der vil have strukturerede webdata som en service uden at vedligeholde en scraping-pipeline, er Thunderbit’s API den kortere vej til produktion. Se Thunderbit’s priser for kreditomkostninger pr. ekstraktion.
Tips til bedre resultater med ChatGPT-webscraping
Et par ting, jeg har lært på den hårde måde.
Vær specifik i dine prompts. Medtag altid: programmeringssprog, bibliotek, mål-URL, CSS-selectors, outputformat og instruktioner til edge cases. Vage prompts giver vag kode.
Indsæt HTML-udsnit, ikke kun URL’er. ChatGPT kan ikke besøge URL’er. HTML-udsnittet er dens eneste kilde til sandheden om sidens struktur. Selv 20–40 linjer fra ét datakort forbedrer præcisionen markant.
Bed ChatGPT om at lint’e og optimere. Efter at have genereret et script, spørg: “Gennemgå denne kode for fejl, tilføj fejlhåndtering og optimer for performance.” Den fanger overraskende ofte sine egne fejl i anden omgang.
Test altid på en lille sample først. Kør scriptet på 1–2 sider, før du skalerer op. At fange en ødelagt selector på side 1 sparer dig for at opdage det efter 500 mislykkede requests.
Iterér, start ikke forfra. Hvis det første script er 80% rigtigt, så indsæt outputtet igen og bed ChatGPT om at rette de sidste 20%. Den iterative samtale er dér, hvor ChatGPT er stærkest.
Etiske og juridiske overvejelser ved ChatGPT-webscraping
Den juridiske side er vigtig, så her er den korte version.
Under nuværende amerikansk retspraksis er scraping af offentligt tilgængelige data ikke en føderal computerkriminalitet. hiQ v. LinkedIn-afgørelsen fastslog det, og Meta v. Bright Data-afgørelsen (januar 2024) bekræftede det — en dommer fandt, at scraping af offentlige, udloggede data fra Facebook og Instagram ikke overtrådte Metas vilkår, fordi en besøgende uden konto ikke er en “user” bundet af de vilkår.
Når det er sagt, kan scraping af beskyttede eller autentificerede data, eller brud på et sites vilkår efter at du har accepteret dem, stadig skabe juridisk risiko. Og når du scraper persondata (e-mails, telefonnumre), gælder EU’s og Californiens databeskyttelseslove (GDPR, CCPA), uanset hvor dataene kommer fra.
Tjek altid robots.txt og Terms of Service, før du scraper. Respektér rate limits. Håndtér persondata ansvarligt. Og brug værktøjer med indbyggede compliance-funktioner — Thunderbit respekterer for eksempel robots.txt og tilbyder ansvarlige datapraksisser som standard. For et dybere dyk, se vores juridiske guide til webscraping.
Hvornår du bør bruge ChatGPT til webscraping — og hvornår du skal vælge noget bedre
ChatGPT er et virkelig stærkt værktøj til webscraping — det genererer hurtige prototyper og hjælper dig med at forstå, hvordan scraping fungerer under motorhjelmen. Til hurtige engangsscripts på simple statiske sider er det svært at slå.
Men til produktion, løbende eller storstilet scraping — især hvis du ikke er udvikler — er et specialbygget værktøj som Thunderbit hurtigere, mere pålideligt og kræver nul vedligehold. Og til enterprise-projekter giver custom code med proxy-infrastruktur dig fuld kontrol.
Mit lille beslutningskompas:
- Hurtig engangsopgave, læring eller prototype: ChatGPT + Python
- Forretningsbrugere, no-code, tilbagevendende scraping: Thunderbit Chrome-udvidelsen
- Udvikler-pipelines, struktureret API-adgang: Thunderbit API
- Enterprise-skala, fuld kontrol: Custom code + proxies + orkestrering
Hvis du vil prøve no-code-vejen, tilbyder Thunderbit en gratis plan, så du kan eksperimentere i lille skala og se resultaterne selv. Og hvis du vil se værktøjet i aktion, har vores YouTube-kanal walkthroughs til forskellige use cases.
Prøv Thunderbit til AI-webscraping Get Started Free
Ofte stillede spørgsmål
Kan ChatGPT faktisk scrape websites på egen hånd?
Nej. ChatGPT genererer scraping-kode eller parser HTML, du giver den, men den besøger ikke URL’er, henter ikke sider og kører ikke scripts. Selv ChatGPT Atlas (den indbyggede browser lanceret i oktober 2025) er en samtalebaseret browsing-assistent — den kan opsummere en side, men den giver dig ikke en struktureret CSV med 500 rækker.
Er ChatGPT-webscraping gratis?
ChatGPT’s gratis version kan generere scraping-kode uden omkostning. Men at køre koden kræver Python og biblioteker (gratis), og hvis du bruger OpenAI API til at parse HTML i stor skala, betaler du token-omkostninger — omkring $6.50 pr. 1.000 sider med GPT-4o mini eller ca. $95 med GPT-4o. Proxies og infrastruktur kommer oveni.
Hvad er det bedste Python-bibliotek til ChatGPT-genererede webscrapers?
Til statiske HTML-sider er BeautifulSoup med requests den enkleste og hurtigste løsning. Til JavaScript-renderede sider er Playwright det moderne valg — det er hurtigere end Selenium (i gennemsnit omkring 2,9 sekunder pr. sideindlæsning mod 4,8 sekunder) og har et renere API. Selenium er primært nyttigt til ældre projekter.
Kan jeg bruge ChatGPT til at scrape data uden at kode?
Ikke direkte. ChatGPT genererer kode, som du stadig selv skal køre. Hvis du vil have et helt no-code-alternativ, lader værktøjer som Thunderbit dig scrape med to klik — ingen Python, ingen terminal, ingen debugging. Du får AI-forslåede felter, ét-klik export til Google Sheets eller Airtable og indbygget håndtering af JS-rendering og anti-bot-beskyttelse.
Er det lovligt at scrape websites ved hjælp af ChatGPT-genereret kode?
Scraping af offentligt tilgængelige, udloggede data er generelt lovligt under nuværende amerikansk retspraksis (hiQ v. LinkedIn, Meta v. Bright Data). Men scraping af beskyttet indhold, brud på et sites vilkår eller forkert håndtering af persondata (e-mails, telefonnumre) kan skabe juridisk risiko under kontraktret eller privatlivsregler som GDPR og CCPA. Tjek altid robots.txt og sitets ToS, før du scraper.
Læs mere


