Wie kann ich einfach alle Tags von einem Element entfernen, das ich in BeautifulSoup finde?Python/BeautifulSoup - Wie alle Tags von einem Element zu entfernen?
Antwort
Angenommen, Sie die Tags entfernen lassen möchten, aber den Inhalt halten, finden Sie in der akzeptierte Antwort auf diese Frage: Remove a tag using BeautifulSoup but keep its contents
sieht es so aus der Art und Weise zu tun ist! so einfach wie das
mit dieser Zeile Sie
''.join(htmlelement.find(text=True))
die alle Textteile innerhalb des aktuellen Elements zusammen verbinden sind, können Sie die decompose Methode in BS4 verwenden:
soup = bs4.BeautifulSoup('<body><a href="http://example.com/">I linked to <i>example.com</i></a></body>')
for a in soup.find('a').children:
if isinstance(a,bs4.element.Tag):
a.decompose()
print soup
Out: <html><body><a href="http://example.com/">I linked to </a></body></html>
warum hat keine Antwort Ich habe etwas über die Methode unwrap
erwähnt? Oder, noch einfacher, die get_text
Methode
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#unwrap http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text
Mit BeautifulStoneSoup
in bs4
gegangen, es ist noch einfacher in Python3
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
text = soup.get_text()
print(text)
Verwenden get_text(), gibt es den gesamten Text in einem Dokument oder unter ein Tag als einzelne Unicode-Zeichenfolge.
So entfernen Sie alle verschiedenen Script-Tags aus dem folgenden Text:
<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>
Das erwartete Ergebnis ist:
Signal et Communication
Ingénierie Réseaux et Télécommunications
Hier ist der Quellcode ist:
#!/usr/bin/env python3
from bs4 import BeautifulSoup
text = '''
<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>
'''
soup = BeautifulSoup(text)
print(soup.get_text())
- 1. Entfernen Bild-Tags von innen alle Anker-Tags
- 2. Wie alle Tags mit dem Text zu entfernen, es PHP
- 3. Element entfernen von Tag-Namen
- 4. Alle HTML-Tags ausblenden (nicht entfernen) - Jquery
- 5. Wie br-Tags in ckeditor zu entfernen?
- 6. Wie kann ich alle verschiedenen Skript-Tags in BeautifulSoup entfernen?
- 7. Wie HTML-Tags in PDF zu entfernen?
- 8. Wie entfernen Element von Chartarea
- 9. Entfernen unbekannte Anzahl von Tags aus innerhalb eines Tags
- 10. Python, entfernen Sie alle HTML-Tags aus string
- 11. Jquery Entfernen Sie alle Ereignishandler Inside Element
- 12. Wie bekomme ich alle verwandten Javascript zu einem HTML-Element
- 13. Element aus einem Listenelement entfernen?
- 14. Entfernen Sie alle untergeordneten Knoten von einem übergeordneten Knoten?
- 15. Wie alle Objekte aus einem NSMutableArray entfernen?
- 16. Wie alle Zeilen aus einem data.frame in r zu entfernen
- 17. alle Widgets in einem Element
- 18. Wie entferne ich alle Tags nach bestimmten Tags?
- 19. Streifen alle Klassen von p-Tags
- 20. Hinzufügen/Entfernen von XML-Tags mit einem Bash-Skript
- 21. Wie Element aus ArrayList zu entfernen?
- 22. Wie Element aus java.util.List zu entfernen?
- 23. Wordpress entfernen benutzerdefinierte Feld-Tags
- 24. jQuery Element aus Array entfernen
- 25. Wie entfernen Sie alle Ereignislistener von einem Anzeigeobjekt?
- 26. Wie Debugger Warn-Tags in Xcode-Ansicht zu entfernen?
- 27. Fetching Alle Tags von einem entfernten mit Git-Pull-
- 28. Wie kann ich programmgesteuert alle Stileigenschaften von einem DOM-Element zu einem anderen
- 29. Bestimmte Tags in Bootstrap entfernen
- 30. So entfernen Sie alle Kommentar-Tags aus XmlDocument
Es ist besser, 'get_text()' anstelle von 'getText()' zu verwenden. – SparkAndShine
Warum ist das? Es mag gut sein, aber es wäre hilfreich zu verstehen, warum. –
getText() ist bs3-Syntax und nicht pep8-konform. Es wird wahrscheinlich veraltet sein. –