J'ai un code HTML dans le contenu de la classe DIV qui ressemble à
AS20194 Multi-functional Massage Chair
Mon code Python est
Brookstone
AS20194 Multi-functional Massage Chair
Et il renvoie p >
soup.find('div',attrs={'class':'content'}).h2.text
Comment mettre à jour les codes pour qu'il renvoie
<h2> <strong> Brookstone </strong> AS20194 Multi-functional Massage Chair </h2>
3 Réponses :
Pas vraiment un maître de Beautiful soupe, mais ce que je vois, c'est qu'il renvoie correctement la partie "texte" du code. Ce que vous voudrez peut-être essayer, c'est de voir dans la documentation bs4 s'il existe un moyen de sélectionner un contenu non formaté.
La partie Brookstone est à l'intérieur et je voudrais m'en débarrasser dans le résultat. Des pensées?
Vous pouvez utiliser extract () pour ignorer la balise strong . Vous pouvez l'essayer:
AS20194 Multi-functional Massage Chair
La sortie sera: p>
import requests
from bs4 import BeautifulSoup
import re
html_doc="""<h2>
<strong>
Brookstone
</strong>
AS20194 Multi-functional Massage Chair
</h2>"""
soup = BeautifulSoup(html_doc, 'lxml')
for strong in soup.find("strong"):
strong.extract()
print(soup.text)
Pas besoin de faire .extract () , vous pouvez utiliser .find_next_sibling () avec le paramètre text = True :
AS20194 Multi-functional Massage Chair
Imprimés:
from bs4 import BeautifulSoup txt = '''<h2> <strong> Brookstone </strong> AS20194 Multi-functional Massage Chair </h2>''' soup = BeautifulSoup(txt, 'html.parser') print(soup.h2.strong.find_next_sibling(text=True))
Est-ce que cela répond à votre question? Exclure les balises indésirables sur Beautifulsoup Python
Non. La réponse dans ce fil était d'exclure le fort, mais je demandais d'obtenir celui qui n'est pas fort.