import requests
from bs4 import BeautifulSoup
import csv
import time

url = "https://www.dst.dk/DstDk-Global/sider/ajax.aspx?controlid={E53ECEF3-D45A-4245-9544-1DE42E43A5D6}"

all_data = []

for year in range(1985, 2026):
    suffix = "_1" if year < 2000 else "_2"
    p1 = f"{year}{suffix}"
    
    print(f"Fetching data for {year}...")
    response = requests.post(url, data={"p1": p1})
    response.raise_for_status()
    
    soup = BeautifulSoup(response.text, 'html.parser')
    tables = soup.find_all('table')
    
    if len(tables) < 2:
        print(f"Skipping {year}, tables not found")
        continue
    
    # Table 0: Piger, Table 1: Drenge
    for gender_id, gender_label in enumerate(['Pige', 'Dreng']):
        table = tables[gender_id]
        rows = table.find_all('tr')
        for row in rows[1:]: # Skip header
            cols = row.find_all('td')
            if len(cols) >= 3:
                rank = cols[0].text.strip()
                name = cols[1].text.strip()
                count = cols[2].text.strip()
                all_data.append({
                    "År": year,
                    "Køn": gender_label,
                    "Placering": rank,
                    "Navn": name,
                    "Antal": count
                })
    time.sleep(0.5)

import os
os.makedirs("data/dst_navne", exist_ok=True)

with open("data/dst_navne/nyfoedte_top50_1985_2025.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=["År", "Køn", "Placering", "Navn", "Antal"])
    writer.writeheader()
    writer.writerows(all_data)

print("Data saved.")
