Python, supprimer toutes les balises html de la chaîne
Je suis en train d'accéder au contenu de l'article à partir d'un site web, à l'aide de beautifulsoup avec le code ci-dessous:
site= 'www.example.com'
page = urllib2.urlopen(req)
soup = BeautifulSoup(page)
content = soup.find_all('p')
content=str(content)
le contenu de l'objet contient tout le texte principal de la page qui est dans le 'p' de la balise, cependant, il ya encore d'autres balises à l'intérieur de la sortie comme on peut le voir dans l'image ci-dessous. Je voudrais supprimer tous les caractères qui sont enfermés dans l'appariement des paires de < > balises et les balises elles-mêmes. de sorte que seul le reste du texte.
J'ai essayé la méthode suivante, mais il ne semble pas fonctionner.
' '.join(item for item in content.split() if not (item.startswith('<') and item.endswith('>')))
Quelle est la meilleure façon de supprimer des sous-chaînes dans une piqûre? qui commencent et finissent avec un certain modèle comme < >
OriginalL'auteur Mustard Tiger | 2016-05-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
get_text()
Exemple ci-dessous est à partir de la docs:
OriginalL'auteur JRodDynamite
En utilisant les regEx:
À l'aide de BeautifulSoup:(Solution de ici)
À l'aide de NLTK:
OriginalL'auteur Ani Menon
Vous devez utiliser le les chaînes de générateur:
OriginalL'auteur Burhan Khalid
Pyparsing facilite l'écriture d'un code HTML décapant par la définition d'un modèle correspondant à tous d'ouverture et de fermeture des balises HTML, et ensuite la transformation de l'entrée à l'aide de ce modèle comme un suppresseur. Cela laisse tout de même le
&xxx;
entités HTML à être convertis - vous pouvez utiliserxml.sax.saxutils.unescape
à faire:donne:
(Et à l'avenir, merci de ne pas fournir des échantillons de texte ou de code non-copie-pasteable images.)
OriginalL'auteur PaulMcG
si vous restreint à utiliser n'importe quelle bibliothèque vous pouvez simplement utiliser le code ci-dessous pour supprimer les balises html.
je viens de corriger ce que vous avez essayé. merci pour l'idée
OriginalL'auteur Krishnadas V A
Algorithme Simple qui fonctionne dans toutes les langues sans modules supplémentaires et libs importés.
Le Code est auto-documenté:
Pour une meilleure réalisation des littéraux "> " et "< " doivent être instanciées en mémoire qu'une seule fois avant le début de la boucle.
OriginalL'auteur lavr2004