-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbasislaege.py
93 lines (81 loc) · 4.47 KB
/
basislaege.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import datetime
import os
import requests
import sys
from bs4 import BeautifulSoup
import csv
def main():
if len(sys.argv) > 1 and sys.argv[1] == "fetch":
with open(f"basislaege-{datetime.datetime.now().strftime("%d-%m-%Y-%H-%M-%S")}.html", "w") as temp:
temp.write(fetch())
exit(0)
basislaege = None
if os.path.exists("basislaege.html"):
with open("basislaege.html") as temp:
basislaege = temp.read()
else:
result = fetch()
with open("basislaege.html", "w") as temp:
temp.write(result)
basislaege = result
print(len(basislaege))
soup = BeautifulSoup(basislaege, 'html.parser')
print("Title of the Page:", soup.title.text) # Access the title element
tags = soup.select(".tag")
print(tags)
specialer = {}
sygehuse = {}
regioner = {}
for t in tags:
if t.has_attr("data-specialeid"):
specialer[t.get("data-specialeid")] = t.select_one("span").text
elif t.has_attr("data-sygehusid"):
sygehuse[t.get("data-sygehusid")] = t.select_one("span").text
elif t.has_attr("data-regionid"):
regioner[t.get("data-regionid")] = t.select_one("span").text
print(specialer)
print(sygehuse)
print(regioner)
print(len(soup.select("div.enkelt-forloeb-div")))
forloeb = []
for d in soup.select("div.enkelt-forloeb-div"):
print(d['data-searchable'])
region = d['data-region']
sygehus = d['data-sygehus']
speciale = d['data-speciale']
speciale2 = d['data-speciale2']
status = d['data-status']
forloeb.append({"region": regioner[region], "sygehus": sygehuse[sygehus], "speciale": specialer[speciale], "speciale2": specialer[speciale2], "status": status})
with open('forloeb.csv', 'w') as temp:
writer = csv.DictWriter(temp , fieldnames=["region", "sygehus", "speciale", "speciale2", "status"])
writer.writeheader()
writer.writerows(forloeb)
def fetch():
url = "https://basislaege.dk/#"
payload = {}
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8'
}
response = requests.request("GET", url, headers=headers, data=payload)
return response.text
main()
# <div class="panel panel-default enkelt-forloeb-div"
# id="enkelt-forloeb-div-3"
# data-id="enkelt-forloeb-div-3"
# data-clp-btn="collapseBtn3"
# data-collapse-id="forloebCollapse3"
# data-prioritering=""
# data-infobox-header="Forløb #70"
# data-infobox-body="Amager og Hvidovre Hospital"
# data-tooltip="Amager og Hvidovre Hospital"
# data-forloebid="02d349b2-9a8d-4ae1-967a-b7a0a88800d4"
# data-region="4"
# data-speciale="2574aa81-8672-41e2-80b1-74554113b7f0"
# data-speciale2="f6bfce57-d201-4f7b-97de-e0de07e9b6d8"
# data-sygehus="11"
# data-searchable="Amager og Hvidovre HospitalAMH, Afdeling for Medicinske Sygdomme01-02-2025Hovedstaden - SydLægerne Vesterbrogade 73 BIntern medicinAlmen medicinØstØstHovedstadenHovedstadenAfdelingen er under omstrukturering. KBU-forløb 
på denne afdeling vil ved ansættelsesstart være fordelt således: "Forløb #70 - Afd. for Lunge- Hormon og Stofskiftesygdomme, Amager" 
"Forløb #238 - Afd. for Lunge- Hormon og Stofskiftesygdomme, Amager" 
"Forløb #287 - Afd. for Lunge- Hormon og Stofskiftesygdomme, Amager" 
"Forløb #568 - Afd. for Ældresygdomme, Amager" 
"Forløb #343 - Afd. for Ældresygdomme, Amager" 
For yderligere information kontaktes afdelingerne; Ældresygdomme: Cheflæge Martin Schultz, tlf. 38622852 Lunge- hormon og stofskiftesygdomme: Specialist Christina Belbin, tlf. 38628588
"
# data-longitude="12.4702054"
# data-latitude="55.6487798"
# data-status="optaget"
# data-favorit="False">