Как спарситить если выдает resultSet?

Всем привет , столкнулся с проблемой не получается вскрыть див контейнер,
вот мой код к этому куску
for row2 in page.html.body.findAll("div","recipe-ing"):
    print(row2.ul.findAll("li","cat"))


суть проблемы в том что у меня никак не получается пройти глубже в контейнер и никакие преобразования и опускание тегов приводит к результату ReultSet, как спарсить значения name и amount ?

[<li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/7777/"><span itemprop="name">Молоко кокосовое</span></a>	  	 — <span itemprop="amount">200 мл</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/3562/"><span itemprop="name">Яйцо куриное</span></a>	  	 — <span itemprop="amount">3 шт</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/1601/"><span itemprop="name">Сахар</span></a>	  	 — <span itemprop="amount">120 г</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/3192/"><span itemprop="name">Ванильный сахар</span></a>	  	 — <span itemprop="amount">20 г</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/2278/"><span itemprop="name">Сок лимонный</span></a>	  	 — <span itemprop="amount">1 ч. л.</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/351/"><span itemprop="name">Вода</span></a>	  	 — <span itemprop="amount">1 ч. л.</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/1068/"><span itemprop="name">Масло сливочное</span></a>	  	 — <span itemprop="amount">1 ч. л.</span> </span> </li>, <li class="cat">
<span itemprop="ingredient" itemscope="" itemtype="http://data-vocabulary.org/RecipeIngredient"><a href="http://www.povarenok.ru/recipes/ingredient/4175/"><span itemprop="name">Конфеты</span></a>	   (Рафаэлло) 	 — <span itemprop="amount">2 шт</span> </span> </li>]
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
@12ss
Не понимаю популярности BeautifulSoup.
Бери lxml для парсинга, научись писать xpath. Это даже проще, к тому же эффективнее.
Будет что-то вроде
//div[@itemprop="recipe-ing"]/li[@class="cat"]/span/@name


В BeautifulSoup попробуй так
spans = soup.find_all('span', attrs={"itemprop": "name"})
for span in spans:
    print(span.get_text())


или два вложенных цикла
lists = soup.find_all("li","cat")
for li in lists:
    spans = li.find_all(attrs={"itemprop": "name"})
    for span in spans:
        print(span.get_text())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы