From 2f5ed60ffbbd948a815f1b2ef3ecfd19c35f6cf3 Mon Sep 17 00:00:00 2001 From: Ebbe Date: Tue, 25 Aug 2026 23:55:40 +0200 Subject: [PATCH] Wrote scraper for fundbureau website --- .DS_Store | Bin 0 -> 8196 bytes scraper/scraper.py | 112 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 .DS_Store create mode 100644 scraper/scraper.py diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d8cd8968d9c99de61b5b08a6f7ce2fac48fa3341 GIT binary patch literal 8196 zcmeHMU2GIp6u#fI&>1?=0SXk{2@8cFWPuh+TK>%TPx&vfE!~!%Wp-zz1JjwZGrKL6 z#>T`%Q7}Gf{DmitMji~H@kJ9A(MLrSjPZe}QC~387nKLk%$+6B(!>~JY@D0SJ@?*o z&b{}X`M#OGvy3sc6!dz=Y8Yc8UA|N*sk%q;_5L-k2;oRMNsvEd1I%Fg?4Uc4wZ>UT z15pN|3`7}-G7x1T%D{gi1N6@Ji#Wl1pKGH!%0QHX|78aJ=R=$>UnWC2%4P8Apei^5 zko1oLL7_IC0|K9TD3hTaf{#>%o&ngMs<{dCOuO^^?qo@GIXhsPu2)z0C4{o_DN`%N3b9f= znCf!|Q=aA(+!igr-|uxgj+HI7wd_9A7|bZut&Z(!rfuW{2U9o5&{?{Q?PY6 z@J(@rD2Y-=nL9jOmx!-hKaz+K*Ecj!yQ#i@WJD6@)UMvRH*?JDx1Gm%7ziH)Z2Fk6 zo){mKPP1|aOY@9o%SxFi4H~O*b9u+Ib~~==Pt%k3j3Lk0jZ>w2 zT_^9g29u>tnx9)K1=rYX(4=P3Xrrm!>Mo@-Ug%vrOm zWx1EKX?y0wrjhR&GWWVOrEvWBJT5?`ljy{vW@dH$8{;o#<-QKItC1zwsbXI`$5w6x_w&S=olmzhNIhPG`OWS?mM;Xrso7o%Em5=qQ{@E zS=WOY7SznIQd4S|sC*`76vecQCPANWD`$XMTe>y1$rZd=`~I^A^YAz>OSQH=#yf&|u~5lvW+7Ia__ z_9BG?=!1!)a503F7{)0)hSPWoXK)tJ;w8L-b2yLJ@fI%P5-#ICT*W8&6rbY;zQuR= z9yjqj{=h9^iZD;85#|evg@mwDSS2(HO~M9Yqp(Zp5YmDs92Fd4hzB5)2zQY8OSN!< zT4Np}L^%2g=o3!3aBsrJ9@?^X+xE#rxa%`G#pcYN7hk$!bwktU=G#!@*e${JP7(yj zzl$#c@&jayLG3lpMR{R~r(;RkMU*jyM4!1z1-D)-FA<3{$`syRCNCF>EXq{gO~h7- zL{CKsx^jJNtwbbL%6K;sYm`I<+i2-*zP10T&-*=6F{%@c7`~M`3F4}gKfhYriB?BmLOSQF-').removesuffix("").split(", ") + + event_artists = [] + + for event_artist_data in event_artists_datalist: + if "" in event_artist_data: + event_artist_data = event_artist_data.split("") + artist_name = event_artist_data[0] + artist_time = event_artist_data[1].removesuffix("").replace("?", "Open end").split("-") + event_artists.append({ + "artist_name": event_artist_data[0], + "artist_play_time_start": artist_time[0], + "artist_play_time_end": artist_time[1] + }) + else: + artist_name = event_artist_data + event_artists.append({ + "artist_name": event_artist_data, + "artist_play_time_start": "n/a", + "artist_play_time_end": "n/a" + }) + + + event_starttime = event.find("div", class_="event-starttime").text.strip() + if ignore_ticket_link: + event_ticket_link = "" + else: + event_ticket_link = event.find("a", class_="event-ticket-link")["href"] + + json_data = { + "event_date": event_date, + "event_name": event_name, + "event_artists": [event_artists], + "event_starttime": event_starttime, + "event_ticket_link": event_ticket_link + } + + events_processed.append(json_data) + with open(output_path + output_file, "w") as json_file: + json.dump(events_processed, json_file, indent=4) + +def main(): + soup = scrape_website(scrape_url, load_local_file) + extract_events(soup, ignore_ticket_link) + +if __name__ == "__main__": + main() \ No newline at end of file