2017-10-06 22 views
0

Je voudrais extraire le contenu (« _ The_important_content_ ») à partir d'un extrait de HTML comme suit:Comment utiliser BeautifulSoup pour obtenir du contenu dans les balises sur ligne

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

Mon code est juste:

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

Mais parce que le champ "class" contient de nouveaux symboles de ligne et est étendu à plusieurs lignes afin que BeautifulSoup ne puisse pas correspondre, le code ne renvoie rien. Comment puis-je spécifier le champ de classe correct et obtenir le contenu?

Il existe plusieurs balises avec la même valeur "class" et une autre valeur "class", mais je souhaite extraire le contenu des balises avec cette valeur "class" spécifique.

Répondre

0

Essayez ceci:

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()) 

Résultat:

_The_important_content_ 
+0

Merci, mais il y a beaucoup de balises div, pas seulement div. – newwave

+0

Pensez juste, comment est-il possible pour n'importe qui de créer une expression sans voir quels que soient les éléments html? – SIM