Seite 1 von 1

html in text umwandeln

Verfasst: Dienstag 9. Juli 2019, 17:57
von egon11
Hallo, gibt es in Python irgend etwas, was html Dateien oder Webseiten in normale Text Seiten umwandelt?

Re: html in text umwandeln

Verfasst: Dienstag 9. Juli 2019, 18:30
von __deets__

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 16:02
von egon11
Ich habe jetzt auch das Modul "html2text" gefunden, da steht in einfacher Verwendung

Code: Alles auswählen

html2text [(filename|url) [encoding]]
wie ist das zu verstehen?
Laut des how to kann ich eine URL damit encoden, das wäre ja gut.

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 16:11
von __deets__
Das ist ein Kommandozeilentool. Das musst du eben mit den gegebenen Argumenten aufrufen. Oder per pipe Daten da rein tun (darum ist der Dateiname wohl optional). Dazu benutzt du das subprocess-Modul. Ich wuerde ja das html2markdown bevorzugen, das funktioniert in purem Code.

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 16:15
von __blackjack__
@egon11: Das sieht nicht nach Python aus sondern nach einem Programm. Eckige Klammern bedeuten üblicherweise „optional“ und „|“ beschreibt üblicherweise Alternativen. Man kann das also ohne Argumente aufrufen, oder mit einem Dateinamen, oder mit einer URL, oder mit einem Dateinamen und einer Kodierung, oder mit einer URL und einer Kodierung.

Wobei das ja auch als Modul nutzbar ist. Schau halt in die Dokumentation. Und es produziert ebenfalls Markdown als Ausgabe, also was ist daran anders/besser als bei dem von `__deets__` vorgeschlagenen `html2markdown`?

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 16:50
von egon11
Ich habe jetzt mal das Modul getestet, bringt leider noch keinen Erfolg:

Code: Alles auswählen

import urllib.request
from bs4 import BeautifulSoup
import html2markdown
url = "https://www.wetter.com/?gclid=EAIaIQobChMI3uKmy9mq4wIVhcx3Ch28bA30EAAYASAAEgKnhPD_BwE"
urlget = urllib.request.urlopen(url)


for i in urlget:
    x = html2markdown.convert(i)
    print(x)

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 17:08
von __blackjack__
@egon11: Das macht ja auch gar keinen Sinn. Was denkst Du denn was `i` ist? Benenne das mal ordentlich. Richtige Namen sind keine Kosmetik sondern wichtiger Bestandteil beim schreiben von korrekten Programmen. Denn dann muss man darüber nachdenken was man macht und merkt hoffentlich wenn das Unsinn ist.

Der `bs4`-Import wird übrigens nicht verwendet.

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 17:10
von Sirius3
@egon11: was bedeutet denn "bringt keinen Erfolg"?
Was ist `urlget` für ein Objekt? Was bedeutet es wenn man über es iteriert?
`urlget`, `i` und `x` sind allesamt schlechte Variablennamen. Wenn Du ihnen sinnvolle Namen gegeben hättest, hättest Du überlegen müssen, was für Objekte das sind und wärst wahrscheinlich schon einen Schritt weiter.

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 17:17
von egon11
Die Variablen Namen denke ich sind ja erstmal egal, solange es nicht um Python eigene Namen geht (z.B. line).
Später werde ich es auch ändern.
Warum ist das alles Quatsch?
Jetzt Frage ich mal anders, wie kann ich das Modul einsetzen, was direkt von einer Webseite einen leserlichen text ausgibt?
Ich möchte nix fertiges, aber mal einen Hinweis, denn auf der Seite steht auch nichts verwertbares für mich.

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 17:26
von __deets__

Code: Alles auswählen

CONTENT = "Lauter tolle HTML tags"
for i in CONTENT:
      print(i)
Das ist uebertragen was du getan hast. Erkennst du warum das Unfug ist?

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 17:37
von nezzcarth
egon11 hat geschrieben: Dienstag 9. Juli 2019, 17:57 Hallo, gibt es in Python irgend etwas, was html Dateien oder Webseiten in normale Text Seiten umwandelt?
Nein, etwas Generisches, das konstant gut Ergebnisse liefert, gibt es nach meinem Kenntnisstand nicht. Moderne Webseiten können sehr komplex und divers sein und die Anforderungen, daran, was man von der jeweiligen Seite haben möchte, gehen zu sehr auseinander. Siehe auch hier: https://ws-dl.blogspot.com/2017/03/2017 ... plate.html
Für einzelne, konkrete Fälle kann man aber Bibliotheken finden, die gut, oder gut genug funktionieren. Das musst du selbst ausprobieren.

Re: html in text umwandeln

Verfasst: Mittwoch 10. Juli 2019, 21:02
von __blackjack__
@egon11: Lies bitte noch mal was ich zu Namen geschrieben habe. Die sind *nicht* egal. Wirklich nicht. So gar nicht. Insbesondere nicht in diesem Fall. `line` ist übrigens kein „Python eigene(r) Name“, aber einer der in Deinem Code Sinn Verwendung finden könnte. Und wenn Du ihn dort für den richtigen Wert verwendest, wäre Dir wahrscheinlich aufgefallen was Du falsch machst. Genau *deswegen* sind Namen wichtig. Sie zeigen ob man verstanden hat was für Werte man hat und was man mit diesen Werten dann macht, und ob das überhaupt Sinn macht das so zu machen.

Re: html in text umwandeln

Verfasst: Donnerstag 11. Juli 2019, 04:30
von egon11
OK ich habe es verstanden. Vielen dank.