Den Text eines html anchor tag extrahieren

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.
Antworten
hal9001
User
Beiträge: 4
Registriert: Mittwoch 11. Januar 2017, 11:40

Hallo,

aus einer Psi Probe Site möchte ich gerne sie Sessions auslesen oder anders ausgedrückt, aus einem html Ancor Tag den Text extrahieren.

Ich habe es mit BeautifulSoup4 versucht. Aber mit .get_text() komme ich nicht weiter.

Wie würde denn ne gute Lösung meines Problems aussehen?

Code: Alles auswählen

from bs4 import BeautifulSoup as bs

# Ausschnitt des Psi Probe Quelltextes
probe = '''
<td>
<a href="/probe/servlets.htm?webapp=%2fserver">
                                      200052
                               </a>
</td>
<td>
<a href="/probe/sessions.htm?webapp=%2fserver&size=">
                                      149
                               </a>
</td>
<td>3620</td>
<td>
<a href="/probe/appattributes.htm?webapp=%2fserver">
                                      49
                               </a>
</td>

'''

soup = bs(probe, 'html.parser')
links = soup.find_all("a", class_="")
print(links)
BlackJack

@hal9001: Was möchtest Du denn aus dem Beispiel als Ergebnis haben?
hal9001
User
Beiträge: 4
Registriert: Mittwoch 11. Januar 2017, 11:40

Ups, sorry! Das hätte ich ja mal verraten können ;)
Die 149 hätte ich gerne extrahiert.
BlackJack

Du willst also nach dem `href`-Inhalt filtern wenn ich das richtig sehe:

Code: Alles auswählen

In [15]: soup.find('a', href=lambda s: s.startswith('/probe/sessions.htm')).text.strip()
Out[15]: u'149'
hal9001
User
Beiträge: 4
Registriert: Mittwoch 11. Januar 2017, 11:40

Danke BlackJack, so funktioniert es.
Antworten