2013-04-25 17 views

risposta

1

sembra che questo è il modo per farlo! così semplice come sembra

con questa linea si stanno unendo insieme i tutte le parti di testo all'interno dell'elemento corrente

''.join(htmlelement.find(text=True)) 
2

È possibile utilizzare il metodo decompongono in BS4:

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> 
46

Con BeautifulStoneSoup andato in bs4, è ancora più semplice in python3

from bs4 import BeautifulSoup 

soup = BeautifulSoup(html) 
text = soup.get_text() 
print(text) 
+4

E ' meglio usare 'get_text()' invece di 'getText()'. – SparkAndShine

+1

Perché è quello? Potrebbe essere il caso, ma sarebbe utile capire perché. –

+11

getText() è la sintassi bs3 e non conforme a pep8. Probabilmente sarà deprecato. –

6

Usa get_text(), restituisce tutto il testo in un documento o sotto un tag, come una singola stringa Unicode.

Per esempio, rimuovere tutti i diversi tag di script dal seguente testo:

<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> 

Il risultato atteso è:

Signal et Communication 
Ingénierie Réseaux et Télécommunications 

Ecco il codice sorgente:

#!/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()) 
Problemi correlati