python - 使用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”
如果您能帮助我,我将不胜感激。
解决方案
推荐阅读
- psql - 如何定位 /etc/postgresql/10/main/pg_hba.conf
- c# - 将项目列表分配给另一个列表 Linq 中的特定属性
- ios - 如何提高旧 IPAD 应用程序的响应时间
- python-3.x - 非零退出代码
- python - 如何根据列值将数据框中的单行分成多行?
- bash - 如何 git checkout 来自与特定模式匹配的另一个分支的所有文件?
- php - POST 与 GET 的推荐
- reactjs - 如何从 JSON 构造多个 React 组件并立即返回它?
- python-3.x - 包含字典的数据框列上的字典操作
- reactjs - React native - 将函数导入使用“this”的组件