html in text umwandeln
Das hier zb: https://pypi.org/project/html2markdown/
Ich habe jetzt auch das Modul "html2text" gefunden, da steht in einfacher Verwendung
wie ist das zu verstehen?
Laut des how to kann ich eine URL damit encoden, das wäre ja gut.
Code: Alles auswählen
html2text [(filename|url) [encoding]]
Laut des how to kann ich eine URL damit encoden, das wäre ja gut.
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.
- __blackjack__
- User
- Beiträge: 13116
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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`?
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`?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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)
- __blackjack__
- User
- Beiträge: 13116
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
Der `bs4`-Import wird übrigens nicht verwendet.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@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.
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.
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.
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.
Code: Alles auswählen
CONTENT = "Lauter tolle HTML tags"
for i in CONTENT:
print(i)
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.
- __blackjack__
- User
- Beiträge: 13116
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman