Sto provando a convertire un blocco di testo HTML con BeautifulSoup. Ecco un esempio:HTML reso a testo normale usando Python
<div>
<p>
Some text
<span>more text</span>
even more text
</p>
<ul>
<li>list item</li>
<li>yet another list item</li>
</ul>
</div>
<p>Some other text</p>
<ul>
<li>list item</li>
<li>yet another list item</li>
</ul>
Ho provato a fare qualcosa di simile:
def parse_text(contents_string)
Newlines = re.compile(r'[\r\n]\s+')
bs = BeautifulSoup.BeautifulSoup(contents_string, convertEntities=BeautifulSoup.BeautifulSoup.HTML_ENTITIES)
txt = bs.getText('\n')
return Newlines.sub('\n', txt)
... ma in questo modo il mio elemento di calibrazione è sempre su una nuova linea. Questo è ovviamente un semplice esempio. C'è un modo per ottenere il testo nella pagina HTML come il modo in cui sarà reso nel browser (non sono richieste le regole CSS, solo il modo regolare renderizza gli elementi div, span, li, ecc.) In Python?
Posso usare html2text in raccordo con BeautifulSoup. Ad esempio, analizzo il pezzo di HTML che mi interessa e lo trasmetto a html2text usando pretify()? – btatarov
Sì, html2text può elaborare l'HTML in blocchi chiamando 'HTML2Text.feed (chunk)' su ciascun blocco successivo, quindi chiamando 'HTML2Text.close()' per ottenere il risultato del testo (simile a ['HTMLParser.feed()' ] (http://docs.python.org/2/library/htmlparser.html#HTMLParser.HTMLParser.feed)). – del
Questa risposta mi ha reso felice e triste allo stesso tempo. RIP Aaron Swartz. –