Files
pomos/crawler_bestatung-aichinger.py
2025-02-20 17:55:05 +01:00

44 lines
1.5 KiB
Python

import requests
from bs4 import BeautifulSoup
import re
BASE_URL = "https://www.bestattung-aichinger.at"
URL = f"{BASE_URL}/traueranzeigen--5683197-de.html"
def get_page_content(url):
page = requests.get(url)
return BeautifulSoup(page.content, "html.parser")
def extract_data(soup):
death_table = soup.find("ul", attrs={"class": "homepage_unterseiten_layout_todesanzeigen"})
death_table_data = death_table.find_all("li")
for row in death_table_data:
date_span = row.find('span', class_='homepage_unterseiten_layout_datum')
date_death = date_span.text.replace('†', '').strip() if date_span else None
title_span = row.find('span', class_='homepage_unterseiten_layout_titel')
if title_span:
title_text = title_span.get_text(separator='\n')
title_parts = title_text.split('\n')
title_left = title_parts[0].strip() if len(title_parts) > 0 else None
title_right = title_parts[1].strip() if len(title_parts) > 1 else None
else:
title_left = title_right = None
print(date_death, title_left, title_right)
def find_next_page(current_url):
match = re.search(r'\?p=(\d+)', current_url)
if match:
next_page_num = int(match.group(1)) + 1
else:
next_page_num = 2
next_page_url = f"{BASE_URL}/traueranzeigen--5683197-de.html?p={next_page_num}"
return next_page_url
current_url = URL
while current_url:
soup = get_page_content(current_url)
extract_data(soup)
current_url = find_next_page(current_url)