2017-02-14 1 views
0

Ich analysiere eine Webseite mit BS4 und Python 3.5. Der Versuch, nur den Benutzernamen (verknüpften Text) von einem div zu extrahieren, die wie folgt aussieht:Extrahieren Sie einen bestimmten Text aus einem div mit beautifulsoup4

<div class="about"><a href="es_viewprofile.aspx?profile_id=110181766">claudiakenzo</a>&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;Pasar el rato&nbsp;&nbsp;&nbsp;<font color="green">En línea</font></div> 

Mi Ziel ist nur der erste Teil des div in diesem Fall zu erhalten, die Zeichenfolge „claudiakenzo“

Dies ist der Code, den ich zu verwenden ich versuche:

  for link in soup.find_all("div", {'class': 'about'}): 
      print(username = link.text) 

Theoretisch sollte ich bekommen, was ich will, aber nein ... ich bin als Ausgabe bekommen:

claudiakenzo 33 Pasar el rato En línea 

Ich möchte nicht die Teile "33", "Pasar el rato" oder "En línea". Was mache ich falsch und was ist der richtige Code, um zu extrahieren, was ich brauche? Leider enthalten einige Benutzernamen auch Zahlen, also ist die Verwendung von re kompliziert ... aber ich denke, es muss einen einfacheren Weg geben, dies zu tun als mit re.

PS- Wenn es eine einfachere Lösung für das Problem mit Selen gibt, bin ich bereit, das auch zu versuchen. Vielen Dank!

Antwort

0

Nehmen Sie sich Zeit BS4 Dokumente zu lesen. In der Zwischenzeit sollte dies Ihr Problem lösen:

for anchor in soup.select('div.about a'): 
    print(anchor.text) 
0

Vielen Dank. Nach der Buchung ich eine Lösung gefunden:

username = link.text.split()[0] 

Das scheint mir zu bekommen, was ich brauche.

Verwandte Themen