Я новичок в изучении веб-страниц и пытаюсь извлечь данные из таблиц html и сохранить их как CSV-файл. Я уже пробовал несколько решений, но до сих пор не могу понять, как их решить.
Я пытался извлечь всю информацию из тега td
. На рисунке ниже приведен пример сегмента кода. Я пытался извлечь все данные, которые были выделены
![enter image description here](https://i.stack.imgur.com/ioOOF.png)
Это то, что я сделал до сих пор:
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'
Буду очень признателен, если вы поможете мне.