首页 > 解决方案 > 使用python以没有类ID的html表格形式刮取数据

问题描述

我是网络抓取的新手,我正在尝试从 html 表中提取数据并将其保存为 csv 文件。我已经尝试了一些解决方案,但我仍然无法弄清楚如何解决它。

我试图从td标签中提取所有信息。下图是代码段的示例。我试图提取所有突出显示的数据

在此处输入图像描述

这是我到目前为止所做的:

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("https://focos.hpb.gov.sg/eservices/ENCF/FoodAnalysis.aspx?p=1")

bs = BeautifulSoup(html)
html.close()

filename = "food.csv"
f = open(filename, "w")

headers ="name, desc, portion, serving, measure, energy, protein, totFat, saturatedFat, DietaryFibre, Carbs, Cholesterol, Sodium\n"
f.write(headers)


table= bs.find('span', attrs={"id":"lblTable"})
table_body = bs.find('tbody')

rows = table_body.findAll('tr')
for row in rows:
    cols=row.findAll('td')
    cols=[x.text.strip() for x in cols]
    print(cols)

f.close()

但是,此代码返回一个错误,即:

AttributeError:“NoneType”对象没有属性“findAll”

如果您能帮助我,我将不胜感激。

标签: pythonhtmlweb-scrapinghtml-tableextract

解决方案


推荐阅读