2017-10-06 1 views
0

Ich möchte den Inhalt ("_ The_important_content_") aus einem HTML-Schnipsel extrahieren, wie folgt:Wie BeautifulSoup verwenden, um Inhalte in over-line-Tags zu erhalten

<div 
              class=" 
              a:2 
              c:gray 
              m:da 
             " 
            > 
             _The_important_content_ 
            </div> 

Mein Code ist nur:

for i in soup.findAll('div', class_="a:2 c:gray m:da"): 
    print(i.text) 

Da das Feld "class" jedoch neue Zeilensymbole enthält und auf mehrere Zeilen erweitert wird, damit BeautifulSoup nicht übereinstimmen kann, gibt der Code nichts zurück. Wie kann ich das korrekte Klassenfeld angeben und den Inhalt abrufen?

Es gibt viele Tags mit dem gleichen "Klassen" -Wert und anderen "Klassen" -Werten, aber ich möchte den Inhalt aus den Tags mit diesem spezifischen "Klassen" -Wert extrahieren.

Antwort

0

Versuchen Sie folgendes:

html=''' 
<div 
      class=" 
      a:2 
      c:gray 
      m:da 
     " 
    > 
     _The_important_content_ 
    </div> 
''' 
from bs4 import BeautifulSoup 
soup = BeautifulSoup(html,"lxml") 
item = soup.select("[class^=]")[0].text 
print(item.strip()) 

Ergebnis:

_The_important_content_ 
+0

Danke, aber es gibt viele div-Tags, nicht nur, dass div. – newwave

+0

Denken Sie nur, wie ist es für jeden möglich, einen Ausdruck zu erstellen, ohne die HTML-Elemente zu sehen? – SIM

Verwandte Themen