靓汤只提取了一个标签的标题

2024-10-01 17:41:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用python3.5中的beautifulsoup从下面网站的表中提取信息。在

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

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

我把网页保存在我的电脑里,我用下面的代码提取表格信息。但问题是代码只是提取表的标题。在

这是我的代码:

^{pr2}$

这是代码的输出:

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

我需要表格行中的所有信息。 谢谢你的帮助!在


Tags: 代码com信息http网页网站www表格
1条回答
网友
1楼 · 发布于 2024-10-01 17:41:01

这是因为页面的损坏的HTML。您需要切换到一个更为宽松的解析器,比如^{}。以下是对我有效的方法:

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)

相关问题 更多 >

    热门问题