Skip to content

Commit

Permalink
Update scraper.rb
Browse files Browse the repository at this point in the history
  • Loading branch information
BfB-Schenefeld committed Apr 22, 2024
1 parent ee6942e commit 7d29a46
Showing 1 changed file with 31 additions and 23 deletions.
54 changes: 31 additions & 23 deletions scraper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,24 @@ def scrape_calendar_data(year, month)
document = Nokogiri::HTML(open(url))

document.css('tr:not(.emptyRow)').each do |row|
dow = row.at_css('.dow')&.text&.strip
dom = row.at_css('.dom')&.text&.strip
time = row.at_css('.time div')&.text&.strip
dow_element = row.at_css('.dow')
dom_element = row.at_css('.dom')
time_element = row.at_css('.time div')
title_element = row.at_css('.textCol a')
room = row.at_css('.raum div')&.text&.strip

next unless dow && dom && time && title_element && room

formatted_date = extract_and_format_date(dow, dom, month, year)
puts "Datum: #{formatted_date}, Zeit: #{time}, Titel: #{title_element.text.strip}, URL: #{'https://www.sitzungsdienst-schenefeld.de/bi/' + title_element['href']}, Raum: #{room}"
scrape_event_details('https://www.sitzungsdienst-schenefeld.de/bi/' + title_element['href'])
room_element = row.at_css('.raum div')

if dow_element && dom_element && time_element && title_element && room_element
dow = dow_element.text.strip
dom = dom_element.text.strip
time = time_element.text.strip
title = title_element.text.strip
url = "https://www.sitzungsdienst-schenefeld.de/bi/#{title_element['href']}"
room = room_element.text.strip
formatted_date = extract_and_format_date(dow, dom, month, year)

puts "Datum: #{formatted_date}, Zeit: #{time}, Titel: #{title}, URL: #{url}, Raum: #{room}"
scrape_event_details(url)
end
end
end

Expand All @@ -67,19 +74,19 @@ def scrape_event_details(event_url)
document = Nokogiri::HTML(open(event_url))

document.css('tr').each do |row|
index_number = row.at_css('td.tonr a')&.text&.strip
betreff = row.at_css('td.tobetreff div a')&.text&.strip || row.at_css('td.tobetreff div')&.text&.strip
top_url = row.at_css('td.tobetreff div a')&['href']
index_number = row.at_css('td.tonr a').text.strip rescue ''
betreff = row.at_css('td.tobetreff div a').text.strip rescue row.at_css('td.tobetreff div').text.strip
top_url = row.at_css('td.tobetreff div a')['href'] rescue nil
top_url = "https://www.sitzungsdienst-schenefeld.de/bi/#{top_url}" if top_url
vorlage_link = row.at_css('td.tovonr a')
vorlage_text = vorlage_link&.text&.strip || "-"
vorlage_text = vorlage_link ? vorlage_link.text.strip : "-"
vorlage_url = vorlage_link ? "https://www.sitzungsdienst-schenefeld.de/bi/#{vorlage_link['href']}" : "-"

next unless index_number && betreff

puts "Gefunden: #{index_number}, Betreff: #{betreff}, TOP-URL: #{top_url}, Vorlage: #{vorlage_text}, Vorlage URL: #{vorlage_url}"
scrape_top_details(top_url) if top_url
scrape_vorlagen_details(vorlage_url) if vorlage_url != "-"
if !index_number.empty? && !betreff.empty?
puts "Gefunden: #{index_number}, Betreff: #{betreff}, TOP-URL: #{top_url}, Vorlage: #{vorlage_text}, Vorlage URL: #{vorlage_url}"
scrape_top_details(top_url) if top_url
scrape_vorlagen_details(vorlage_url) if vorlage_url != "-"
end
end
end

Expand All @@ -93,7 +100,7 @@ def scrape_top_details(top_url)

vorlagen_betreff_element = document.at_css('span#vobetreff a')
vorlagen_url = vorlagen_betreff_element ? "https://www.sitzungsdienst-schenefeld.de/bi/#{vorlagen_betreff_element['href']}" : nil
puts "Vorlagen-Betreff gefunden: #{vorlagen_betreff_element&.text&.strip}, Vorlagen-URL: #{vorlagen_url}"
puts "Vorlagen-Betreff gefunden: #{vorlagen_betreff_element.text.strip if vorlagen_betreff_element}, Vorlagen-URL: #{vorlagen_url}"
scrape_vorlagen_details(vorlagen_url) if vorlagen_url
end

Expand All @@ -102,12 +109,12 @@ def scrape_vorlagen_details(vorlagen_url)
puts "Zugriff auf Vorlagenseite: #{vorlagen_url}"
document = Nokogiri::HTML(open(vorlagen_url))

vorlagenbezeichnung = document.at_css('#header h1.title')&.text&.strip || "Keine Vorlagenbezeichnung gefunden"
vorlagenprotokolltext = document.at_css('#mainContent')&.text&.gsub(/\s+/, ' ')&.strip || "Kein Vorlagenprotokolltext gefunden"
vorlagenbezeichnung = document.at_css('#header h1.title').text.strip rescue "Keine Vorlagenbezeichnung gefunden"
vorlagenprotokolltext = document.at_css('#mainContent').text.gsub(/\s+/, ' ').strip rescue "Kein Vorlagenprotokolltext gefunden"
puts "Vorlagenbezeichnung: #{vorlagenbezeichnung}"
puts "Vorlagenprotokolltext: #{vorlagenprotokolltext}"

vorlagen_pdf_url = document.at_css('a.doclink.pdf')&['href']
vorlagen_pdf_url = document.at_css('a.doclink.pdf')['href'] rescue nil
vorlagen_pdf_url = "https://www.sitzungsdienst-schenefeld.de/bi/#{vorlagen_pdf_url}" if vorlagen_pdf_url
puts "Vorlagen-PDF-URL: #{vorlagen_pdf_url}"
end
Expand Down Expand Up @@ -143,5 +150,6 @@ def scrape_vorlagen_details(vorlagen_url)






0 comments on commit 7d29a46

Please sign in to comment.