加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 使用BeautifulSoup解析HTML表

发布时间:2020-12-17 00:50:57 所属栏目:Python 来源:网络整理
导读:我过去曾使用过BeautifulSoup,但我反对新事物;令人难以置信的通用/最小的HTML表格标记我的目标是获取每个值和它的标签(每个都在自己的td中)并打印出来它们可以合并,我不在乎,我只是想制作确保每个标签都应用于正确的值.这是一个示例表: 我知道如何抓住这些

我过去曾使用过BeautifulSoup,但我反对新事物;令人难以置信的通用/最小的HTML表格标记…我的目标是获取每个值和它的标签(每个都在自己的td中)并打印出来……它们可以合并,我不在乎,我只是想制作确保每个标签都应用于正确的值.这是一个示例表:

我知道如何抓住这些价值……

for td in soup.findAll('table')[0]:  # theres more than one table on the page
    print td.renderContents().strip()

但这只给了我……

'Dawn:'
'07:01'
'Sunrise:'
'07:26'
'Moonrise:'
'14:29'
'Moon

我想我可以抓住那些类值“标签”和“site_data”,但我如何确保标签和数据分组正确?

最佳答案
以下内容应该更简单,更容易理解:

import pprint
from BeautifulSoup import BeautifulSoup  
soup = BeautifulSoup(docTxt)
groupedData = []
for row in soup.findAll("tr"):
    data = {}
    allTDs = row.findAll("td")
    for x in range(0,len(allTDs)-1,2):
        data[allTDs[x].renderContents().strip()] = allTDs[x+1].renderContents().strip()
    groupedData.append(data)

pprint.pprint(groupedData)

输出:

[{'Dawn:': '07:01','Moonrise:': '14:29','Sunrise:': '07:26'},{'Dusk:': '18:27','Moonset:': '01:55','Sunset: ': '18:02'},{'Day length:': '10:36','Daylight:': '11:26','Moon Phase:': 'Waxing Gibbous'}]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读