2025-03-11
This commit is contained in:
@@ -11,7 +11,13 @@ locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
|
|||||||
BASEURL = os.getenv("BASEURL", default="https://www.feuerwehr-nea.de")
|
BASEURL = os.getenv("BASEURL", default="https://www.feuerwehr-nea.de")
|
||||||
FWNAME = os.getenv("FWNAME", default="Feuerwehr Nea")
|
FWNAME = os.getenv("FWNAME", default="Feuerwehr Nea")
|
||||||
|
|
||||||
soup = BeautifulSoup(requests.get(BASEURL + "/einsaetze",timeout=20).content, 'html.parser')
|
session = requests.Session()
|
||||||
|
|
||||||
|
soup = BeautifulSoup(session.get(BASEURL + "/einsaetze",timeout=20).content, 'html.parser')
|
||||||
|
|
||||||
|
csrfmiddlewaretoken = soup.find('input', attrs={ "name": "csrfmiddlewaretoken" })['value']
|
||||||
|
|
||||||
|
soup = BeautifulSoup(session.post(BASEURL + "/einsaetze/load_reports/0/no_group/", data={ "csrfmiddlewaretoken": csrfmiddlewaretoken }, headers={'referer': BASEURL + "/einsaetze"}).content, 'html.parser')
|
||||||
|
|
||||||
print('<?xml version="1.0" encoding="UTF-8" ?>\n'
|
print('<?xml version="1.0" encoding="UTF-8" ?>\n'
|
||||||
'<rss version="2.0">'
|
'<rss version="2.0">'
|
||||||
@@ -20,29 +26,34 @@ print('<?xml version="1.0" encoding="UTF-8" ?>\n'
|
|||||||
'<link>' + BASEURL + '</link>'
|
'<link>' + BASEURL + '</link>'
|
||||||
'<description>' + FWNAME + ' Einsätze</description>')
|
'<description>' + FWNAME + ' Einsätze</description>')
|
||||||
|
|
||||||
for mysoup in soup.find_all('article', class_='teaser-element'):
|
for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
|
||||||
mydatetime_str = mysoup.find('span', class_="date").string
|
mylink = BASEURL + mysoup['href']
|
||||||
|
soup2 = BeautifulSoup(session.get( mylink ,timeout=10).content, 'html.parser')
|
||||||
|
mydatetime_str = soup2.find("th",string='Einsatzstart').find_next("td").string
|
||||||
mydatetime = datetime.strptime(mydatetime_str, '%d. %B %Y %H:%M')
|
mydatetime = datetime.strptime(mydatetime_str, '%d. %B %Y %H:%M')
|
||||||
mydatetime = timezone("CET").localize(mydatetime)
|
mydatetime = timezone("CET").localize(mydatetime)
|
||||||
mylink = BASEURL + (mysoup.find('a', class_="einsatz-link"))['href']
|
mykeywords = soup2.find("th",string='Alarmierungsart')
|
||||||
soup2 = BeautifulSoup(requests.get(mylink,timeout=10).content, 'html.parser')
|
if mykeywords is None:
|
||||||
mylist = []
|
mykeywords = soup2.find("th",string='Einsatzart')
|
||||||
mykeywords = myunits = ""
|
if mykeywords is not None:
|
||||||
for itemsoup in (soup2.find('tbody').find_all('td')):
|
mykeywords = mykeywords.find_next("td").string.strip()
|
||||||
if itemsoup.string is not None:
|
else:
|
||||||
mylist.append(re.sub(r"\n\ *", " ", itemsoup.string.strip()))
|
mykeywords = ""
|
||||||
if len(mylist) >= 4:
|
myunits = soup2.find("th",string='Alarmierte Einheiten')
|
||||||
mykeywords = mylist[3]
|
if myunits is None:
|
||||||
if len(mylist) >= 3:
|
myunits = soup2.find("th",string='Alarmierung')
|
||||||
myunits = mylist[2]
|
if myunits is not None:
|
||||||
|
myunits = myunits.find_next("td").string.strip()
|
||||||
|
else:
|
||||||
|
myunits = ""
|
||||||
print("<item>")
|
print("<item>")
|
||||||
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
|
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
|
||||||
print("<pubDate>" + mydatetime.strftime('%a, %d %b %Y %H:%M:%S %z') + "</pubDate>")
|
print("<pubDate>" + mydatetime.strftime('%a, %d %b %Y %H:%M:%S %z') + "</pubDate>")
|
||||||
locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
|
locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
|
||||||
print("<title>" + mykeywords + " - " + (mysoup.find('h3', class_="heading")).string.strip() + " - " + myunits + "</title>")
|
print("<title>" + mykeywords + " - " + (soup2.find('meta', attrs={ "property": "og:title" }))['content'] + " - " + myunits + "</title>")
|
||||||
print("<link>" + mylink + "</link>")
|
print("<link>" + mylink + "</link>")
|
||||||
try:
|
try:
|
||||||
print("<description>" + (mysoup.find('div', class_="teaser-element-text")).string.strip() + "</description>")
|
print("<description>" + (soup2.find('div', class_="description")).string.strip() + '<br>' + (soup2.find('div', class_="description").find_next("p").string.strip()) + '<hr>' + myunits + "</description>")
|
||||||
except:
|
except:
|
||||||
print("<description></description>")
|
print("<description></description>")
|
||||||
print("</item>")
|
print("</item>")
|
||||||
|
|||||||
Reference in New Issue
Block a user