import os from bs4 import BeautifulSoup # Ordner, in dem sich die Textdateien und das Skript befinden ordner_pfad = os.path.dirname(os.path.abspath(__file__)) input = "926751.html" # Listen von Titeln, Start- und Endmustern titel = [ "Name", # 1 "Verifizierter Club", # 2 "Mitglieder", # 3 "Kategorie", # 4 "Land", # 5 "Club ID", # 6 "Logo", # 7 "Titel8", # 8 "Titel9", # 9 "Titel10", # 10 ] selectors = [ 'meta[property="og:title"]', # 1 'span[original-title="Verifizierter Club"]', # 2 'div.club-members.section > h3', # 3 'span.icon-workout.icon-lg', # 4 # usw... TODO... die weiteren Selectoren eintragen... '\n\r \n\r',  # 5
'<meta content=', # 1 "", # 2 ' Mitglieder\n', # 3 "", # 4 '" src="data:,">', # 5 '" property="og:url">', # 6 '/large.jpg"', # 7 "END8", # 8 "END9", # 9 "END10", # 10 ] # Ausgabedatei ausgabe_datei = "extrahierte_werte.txt" def extrahiere_werte(datei): extrahierte_werte = {t: [] for t in titel} with open(datei, 'r') as textdatei: index = textdatei.read() S = BeautifulSoup(index, 'lxml') for i in range(min([len(selectors), len(properties)])): Tag = S.select_one(selectors[i]) property = properties[i] if property == "##inner": extrahierte_werte[titel[i]].append(Tag.text) else: extrahierte_werte[titel[i]].append(Tag[property]) Tag = S.select_one('span[original-title="Verifizierter Club"]') Tag = S.select_one('span.icon-workout.icon-lg') property = "##inner" #property = "content" if property == "##inner": print(Tag.text) else: print(Tag[property]) return extrahierte_werte def main(): print("gogo") with open(ausgabe_datei, 'w') as ausgabe: ausgabe.write("Dateiname\t" + "\t".join(titel) + "\n") for datei_name in os.listdir(ordner_pfad): if datei_name.endswith(".html"): print("handling {datei_name}".format(datei_name=datei_name)) datei_pfad = os.path.join(ordner_pfad, datei_name) extrahierte_werte = extrahiere_werte(datei_pfad) print(extrahierte_werte) if extrahierte_werte: dateiname = os.path.splitext(datei_name)[0] ausgabe.write(dateiname) for t in titel: ausgabe.write("\t" + "\t".join(extrahierte_werte[t])) ausgabe.write("\n") if __name__ == "__main__": main()