ich spiele seit ein paar Tagen nebenher an einer Idee rum, habe mich aber festgefahren...
Ich möchte wissen, ob die Einträge in einer Liste in einem längeren Text bzw string vorhanden sind. Eigentlich keine große Sache, mit einem kurzen string klappt das an anderer Stelle wunderbar, aber mit dem längeren string bekomme ich eine Fehlermeldung, die ich nicht gelöst bekomme.
Also, ich lade eine Börsenmitteilung runter, lese die aus und möchte dann prüfen ob Schlagworte aus der Liste im Text vorhanden sind.
Der relevante Code-Teil sieht so aus, zuerst die notwendigen Definitionen
Code: Alles auswählen
from selectolax.parser import HTMLParser
POSITIVEKEYWORDS = ["revenue", "record", "positive"]
USERAGENT = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'}
Code: Alles auswählen
linkToSECHtml = "https://www.sec.gov/Archives/edgar/data/1529113/000121390021054234/0001213900-21-054234.txt"
antwort = get(linkToSECHtml, headers=USERAGENT)
text = HTMLParser(antwort.text).text()
text = " ".join(text.split())
regexergebnis = search(r'Item.*SIGNATURE', text)
if any(keyword in regexergebnis for keyword in POSITIVEKEYWORDS):
print(f"POSITIVE KEYWORD!!\n")
Nun zum Problem: Das if any(... bricht mit folgender Fehlermeldung ab.
Code: Alles auswählen
Traceback (most recent call last):
File "c:/Users/ah/6_8_K/6-8Ks_V005.py", line 173, in <module>
if any(keyword in regexergebnis for keyword in POSITIVEKEYWORDS):
File "c:/Users/ah/6_8_K/6-8Ks_V005.py", line 173, in <genexpr>
if any(keyword in regexergebnis for keyword in POSITIVEKEYWORDS):
TypeError: argument of type 're.Match' is not iterable
Grundsätzlich funktioniert der "if any(keyword in ..." Ansatz, ich nutze den in einem anderen Skript, in dem ein kürzerer string nach Schlüsselwörtern durchsucht wird, problemlos und ich kann auch in diesem Code regexergebnis z.B. durch einen kurzen string "titel" ersetzen und dann läuft es ohne Fehlermeldung.
Weiß jemand einen Rat? Ich tippe mal, daß der string regexergbnis vielleicht zu lang ist oder Zeichen enthält, die Python irgendwie nicht mag. Oder gehe ich (mal wieder) mit dem falschen Werkzeug an diese Suche ran?
Grüße
Andy