Я новичок в Python и пытаюсь создать новый фрейм данных, используя BeautifulSoup для очистки веб-страницы. Я следую некоторому коду, который работал на другой странице, но здесь он не работает. Моя последняя таблица данных пуста, так что, похоже, она не добавляется. Любая помощь приветствуется. Вот что я сделал:
from bs4 import BeautifulSoup
import requests
import pandas as pd
allergens = requests.get(url = 'http://guetta.com/diginn/allergens/')
allergens = BeautifulSoup(allergens.content)
items = allergens.find_all('div', class_ = 'menu-item-card')
final_table = {}
for item in allergens.find_all('div', class_ = 'menu-item-card'):
for row in item.find_all('h4', recursive = False)[0:]:
for column in row.find_all('p', class_ = 'menu-item__allergens'):
col_name = column['class'][0].split('__')[1]
if col_name not in final_table:
final_table[col_name] = []
final_table[col_name].append(column.text)
df_allergens = pd.DataFrame(final_table)
Это ничего не возвращает. Никаких ошибок, только пустые скобки. Мне удалось получить каждый элемент по отдельности, поэтому я думаю, что элементы должны работать, но, очевидно, я что-то упустил.
Редактировать: Вот что должно быть на выходе:
Item Name Allergens
Classic Dig | Soy
Item2 | allergen1, allergen2
Item3 | allergen2