Wie kann ich einfach alle Tags von einem Element entfernen, das ich in BeautifulSoup finde?
Wie kann ich einfach alle Tags von einem Element entfernen, das ich in BeautifulSoup finde?
Antworten:
Mit BeautifulStoneSoup
gone in bs4
, es ist noch einfacher in Python3
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
text = soup.get_text()
print(text)
Warum hat keine Antwort, die ich gesehen habe, etwas über die unwrap
Methode 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
Verwenden Sie get_text () , um den gesamten Text in einem Dokument oder unter einem Tag als einzelne Unicode-Zeichenfolge zurückzugeben.
Entfernen Sie beispielsweise alle verschiedenen Skript-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:
#!/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())
Sie können die Zerlegungsmethode 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>
es sieht so aus, als wäre das der richtige Weg! so einfach ist das
Mit dieser Zeile verbinden Sie alle Textteile innerhalb des aktuellen Elements
''.join(htmlelement.find(text=True))
Hier ist der Quellcode: Sie können den Text erhalten, der genau in der URL enthalten ist
URL = ''
page = requests.get(URL)
soup = bs4.BeautifulSoup(page.content,'html.parser').get_text()
print(soup)
Code, um den Inhalt einfach als Text anstelle von HTML abzurufen:
Der Parameter 'html_text' ist die Zeichenfolge, die Sie in dieser Funktion übergeben, um den Text abzurufen
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_text, 'lxml')
text = soup.get_text()
print(text)
get_text()
alsgetText()
.