# Har bygget Python‑scraperne til skibsdata (MarineTraffic, Maritime‑Database) og et gentageligt import‑trin, der seeder platformens referencedata — 184.197 rækker, heraf 698 virksomheder og 56.149 skibe.

2025

**Situation.** Et maritimt netværks- og anmeldelsessite er dødt ved ankomst, hvis det er tomt. Ingen melder sig ind i et katalog uden virksomheder i. Så før nogen af de sociale funktioner betød noget, havde platformen brug for et rigtigt korpus af maritime virksomheder og skibe, der allerede sad der, klar til at blive fundet.

**Opgave.** Gå ud og hent de data — rigtige virksomheder og skibe, i nok skala til at føles befolket — og få dem ind i databasen på en måde, der kunne køres igen, ikke en engangs‑scrape, ingen ville kunne reproducere.

**Handling.** Scraperne er skrevet i Python. Én driver MarineTraffic med Playwright; en anden henter fra Maritime‑Database over async httpx; der er også en ClassNK‑fetcher. De skriver CSV'er ud, og et import‑trin renser og normaliserer dem og indlæser dem i Postgres‑skemaet gennem en enkelt task, så at seede databasen er én kommando frem for en eftermiddags manuelt arbejde. Det, der gik ind, endte på 184.197 rækker: 698 virksomheder, 56.149 fartøjer og 33.074 byer, med en senere opdatering, der erstattede 74.794 fartøjsrækker.

**Resultat.** Platformen blev lanceret med et befolket katalog i stedet for tomme tabeller og et grundlag af referencedata, som netværks-, job- og anmeldelsesfunktionerne alle kunne bygge oven på. Fordi pipelinen er reproducerbar, er det bare at køre den igen at opdatere eller udvide den senere — hvilket er sådan, fartøjsopdateringen skete, uden at nogen byggede værktøjet om. Scrapede data ældes, og at holde dem aktuelle er en løbende omkostning frem for et løst problem.

---

- Rolle: Dataingeniør
- Kategorier: [Backend‑udvikling](https://data.engineer.company/da/categories/backend/), [Databaser](https://data.engineer.company/da/categories/databases/), [Data engineering](https://data.engineer.company/da/categories/data-engineering/), [Datapipelines (ETL/ELT)](https://data.engineer.company/da/categories/data-pipelines/), [Automatisering & CI/CD](https://data.engineer.company/da/categories/automation/), [Python](https://data.engineer.company/da/categories/python/)
- Ydelser: [Backend- & API‑udvikling](https://data.engineer.company/da/services/backend-development/), [Udvikling af datapipelines (ETL/ELT)](https://data.engineer.company/da/services/data-pipeline-development/)

<https://data.engineer.company/da/portfolio/built-a-python-vessel-data-scraper-marinetraffic-maritime-66/>
