salida espaciada beautifulsoup

Estoy tratando de desechar los contenidos de un sitio web. Sin embargo, en la salida obtengo espacios no deseados y, por lo tanto, no puedo interpretar esta salida. Estoy usando un código simple:

import urllib2 from bs4 import BeautifulSoup html= 'http://idlebrain.com/movie/archive/index.html' soup = BeautifulSoup(urllib2.urlopen(html).read()) print(soup.prettify(formatter=None)) 

SALIDA:: (la salida es muy grande, por lo que una pequeña parte de la misma para entender a qué problema me enfrento)

  Telugu cinema reviews by Jeevi - idlebrain.com  
Idlebrain.Com

Puede especificar el analizador como html.parser :

 soup = BeautifulSoup(urllib2.urlopen(html).read(), 'html.parser') 

O puede especificar el analizador html5 :

 soup = BeautifulSoup(urllib2.urlopen(html).read(), 'html5') 

¿No has instalado el analizador html5 todavía? Instalarlo desde la línea de comandos:

 sudo apt-get install python-html5lib 

También puede usar el analizador xml pero puede ver algunas diferencias en los atributos de valores múltiples como class="foo bar" :

 soup = BeautifulSoup(urllib2.urlopen(html).read(), 'xml') 

Lo resolví, pero no sé exactamente la razón. Instalé virtualenv y ejecuté mi progtwig dentro de él. y funcionó perfectamente.

Probablemente se trate de un duplicado de BeautifulSoup que no lee los documentos correctamente , es decir, fue causado por un error en BS 4.0.2.

Ese error se ha corregido en 4.0.3. Es posible que desee comprobar la salida de

 >>> import bs4 >>> bs4.__version__ 

Sospecho que es 4.0.2 para BeautifulSoup de tu sistema, mientras que es 4.0.3 (o posterior) en tu virtualenv. Entonces, si desea que su código se ejecute correctamente en su sistema, actualice BeautifulSoup a una versión posterior.