gpt4 book ai didi

python - BeautifulSoup 只需提取表头

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:43 25 4
gpt4 key购买 nike

我想使用 python 3.5 中的 beautiful soup 从以下网站的表中提取信息。

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

我必须先保存网页,因为我的程序需要离线工作。

我将网页保存在计算机中,并使用以下代码提取表格信息。但问题是代码只是提取表格的标题。

这是我的代码:

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)

这是代码的输出:

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

我需要表行中的所有信息。感谢您的帮助!

最佳答案

这是因为页面的 HTML 损坏。您需要切换到更宽松的解析器,例如 html5lib 。以下是对我有用的方法:

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)

关于python - BeautifulSoup 只需提取表头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38680057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com