html.escape 4 strings in rss

This commit is contained in:
Christian Jeworrek
2025-03-29 18:44:10 +01:00
parent 9792af0ad9
commit ab540a03dc

View File

@@ -2,6 +2,7 @@
import os import os
import re import re
import locale import locale
import html
from datetime import datetime from datetime import datetime
from pytz import timezone from pytz import timezone
import requests import requests
@@ -27,7 +28,7 @@ print('<?xml version="1.0" encoding="UTF-8" ?>\n'
'<description>' + FWNAME + ' Einsätze</description>') '<description>' + FWNAME + ' Einsätze</description>')
for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'): for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
mylink = BASEURL + mysoup['href'] mylink = html.escape(BASEURL + mysoup['href'])
soup2 = BeautifulSoup(session.get( mylink ,timeout=10).content, 'html.parser') soup2 = BeautifulSoup(session.get( mylink ,timeout=10).content, 'html.parser')
mydatetime_str = soup2.find("th",string='Einsatzstart').find_next("td").string 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')
@@ -39,6 +40,7 @@ for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
mykeywords = mykeywords.find_next("td").string.strip() mykeywords = mykeywords.find_next("td").string.strip()
else: else:
mykeywords = "" mykeywords = ""
mykeywords = html.escape(mykeywords)
myunits = soup2.find("th",string='Alarmierte Einheiten') myunits = soup2.find("th",string='Alarmierte Einheiten')
if myunits is None: if myunits is None:
myunits = soup2.find("th",string='Alarmierung') myunits = soup2.find("th",string='Alarmierung')
@@ -46,14 +48,15 @@ for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
myunits = myunits.find_next("td").string.strip() myunits = myunits.find_next("td").string.strip()
else: else:
myunits = "" myunits = ""
myunits = html.escape(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 + " - " + (soup2.find('meta', attrs={ "property": "og:title" }))['content'] + " - " + myunits + "</title>") print("<title>" + mykeywords + " - " + html.escape((soup2.find('meta', attrs={ "property": "og:title" }))['content']) + " - " + myunits + "</title>")
print("<link>" + mylink + "</link>") print("<link>" + mylink + "</link>")
try: try:
print("<description>" + (soup2.find('div', class_="description")).string.strip() + '&lt;br&gt;' + (soup2.find('div', class_="description").find_next("p").string.strip()) + '&lt;hr&gt;' + myunits + "</description>") print("<description>" + html.escape((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>")