modulenotfounderror how from examples beautifulsoup4 python python-3.x beautifulsoup bs4

python - how - Hermosa sopa solo extraer encabezado de una mesa



install beautifulsoup python 3 (1)

Esto se debe al código HTML roto de la página. html5lib cambiar a un analizador más indulgente como html5lib . Esto es lo que funciona para mí:

from pprint import pprint import requests from bs4 import BeautifulSoup url = "http://www.askapatient.com/viewrating.asp?drug=19839&name=ZOLOFT" response = requests.get(url, headers={''User-Agent'': ''Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36''}) # HTML parsing part soup = BeautifulSoup(response.content, "html5lib") table = soup.find("table", attrs={"class":"ratingsTable"}) comments = [[td.get_text() for td in row.find_all("td")] for row in table.find_all("tr")] pprint(comments)

Quiero extraer información de la tabla en el siguiente sitio web usando beautiful soup en python 3.5.

http://www.askapatient.com/viewrating.asp?drug=19839&name=ZOLOFT

Primero tengo que guardar la página web, ya que mi programa necesita funcionar fuera de línea.

Guardé la página web en mi computadora y usé los siguientes códigos para extraer la información de la tabla. Pero el problema es que el código simplemente extrae el encabezado de la tabla.

Este es mi código:

from urllib.request import Request, urlopen from bs4 import BeautifulSoup url = "file:///Users/MD/Desktop/ZoloftPage01.html" home_page= urlopen(url) soup = BeautifulSoup(home_page, "html.parser") table = soup.find("table", attrs={"class":"ratingsTable" } ) comments = [td.get_text() for td in table.findAll("td")] print(comments)

Y este es el resultado del código:

[''RATING'', ''/xa0 REASON'', ''SIDE EFFECTS FOR ZOLOFT'', ''COMMENTS'', ''SEX'', ''AGE'', ''DURATION/DOSAGE'', ''DATE ADDED '', ''/xa0’]

Necesito toda la información en las filas de la mesa. Gracias por tu ayuda !