Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hi,
Ich würde gerne aus dem folgendem Text die URL raus filtern und den Namen. Problem bei der Sache ist ich habe mehrere solcher Texte, bei denen sich die Zahl (100) ändert die URL und der Name ändern sich logischerweise auch. Habe es mit replace versucht und pre und Post die Zahl heraus zu filtern um diese dann aus dem String entfernen zu können. Jemand eine Idee?
text = '<li class="hallo-100"><a href="https://test.xy">testname</a>'
data = text.replace(' ','').replace(' ','').replace('<','').replace('>','').replace('"','',2).replace('=','').replace('-','')
pre = 'liclasscatitemcatitem'
post = 'ahref'
data = data[len(pre):-len(post)]
In [212]: text = '<li class="hallo-100"><a href="https://test.xy">testname</a>'
In [213]: soup = bs4.BeautifulSoup(text, "html.parser")
In [214]: soup.a
Out[214]: <a href="https://test.xy">testname</a>
In [215]: soup.a["href"]
Out[215]: 'https://test.xy'
Aber wahrscheinlich kommt das ja auch einem kompletten HTML-Dokument, da sollte man also auch bis zu dem was in `text` repräsentiert ist, mit `BeautifulSoup` kommen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Oh den link habe ich wohl übersehen, danke. Ja es ist nur der Ausschnitt in Text um Dehn es geht. Ich lasse mir diesen Ausschnitt aus einer Webseite geben.
@LRK: Was heisst Du lässt Dir den Ausschnitt aus einer Webseite geben? Wenn Du den da mit Zeichenkettenoperationen heraus holst, ohne zu berücksichtigen/zu nutzen, dass es sich bei HTML um ein strukturiertes Dokument handelt, dann solltest Du mit dem HTML-Parser nicht erst bei dem gezeigten Ausschnitt ansetzen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
@LRK: HTML-Dateien sind keine Text-Dateien, sondern deutlich komplexer. Mit Beautiful-Soup kannst Du bequem die Stelle im HTML suchen, die Du brauchst, da mußt Du ja nicht zwei verschiedene Methoden einsetzen.
Zum Code:
urlopen solltest Du auch mit with benutzen.
Einen leeren String zu schreiben, macht keinen Sinn. Du solltest die Datei einmal öffnen und nicht bei jeder Zeile neu.
Importe gehören alle an den Anfang der Datei.
Für Code im Forum, benutze [ code ] -Tags, der </>-Knopf im vollständigen Editor.