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.