Necesito obtener todo el texto de una página usando BeautifulSoup. En la documentación de BeautifulSoup, mostró que puede hacer soup.get_text()
para hacer esto. Cuando he intentado hacer esto en reddit.com, tengo este error:Use soup.get_text() con UTF-8
UnicodeEncodeError in soup.py:16
'cp932' codec can't encode character u'\xa0' in position 2262: illegal multibyte sequence
recibo errores como que en la mayoría de los sitios que he marcado.
Obtuve errores similares cuando hice soup.prettify()
también, pero lo arreglé cambiándolo a soup.prettify('UTF-8')
. ¿Hay alguna forma de arreglar esto? ¡Gracias por adelantado!
de actualización cada 24 de junio de
he encontrado un poco de código que parece funcionar para otras personas, pero todavía tengo que usar UTF-8 en lugar del predeterminado. Código:
texts = soup.findAll(text=True)
def visible(element):
if element.parent.name in ['style', 'script', '[document]', 'head', 'title']:
return False
elif re.match('', str(element)): return False
elif re.match('\n', str(element)): return False
return True
visible_texts = filter(visible, texts)
print visible_texts
error es diferente, sin embargo. ¿Progreso?
UnicodeEncodeError in soup.py:29
'ascii' codec can't encode character u'\xbb' in position 1: ordinal not in range
(128)