Извлекайте данные в виде таблицы html без идентификатора класса, используя python - PullRequest
0 голосов
/ 21 января 2020

Я новичок в изучении веб-страниц и пытаюсь извлечь данные из таблиц html и сохранить их как CSV-файл. Я уже пробовал несколько решений, но до сих пор не могу понять, как их решить.

Я пытался извлечь всю информацию из тега td. На рисунке ниже приведен пример сегмента кода. Я пытался извлечь все данные, которые были выделены

enter image description here

Это то, что я сделал до сих пор:

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'

Буду очень признателен, если вы поможете мне.

...