Как я могу извлечь содержимое тега <aside>с помощью beautifulsoup - PullRequest
0 голосов
/ 20 июня 2020

Я новичок ie и в настоящее время работаю над извлечением некоторой информации с веб-сайта. Теперь у меня есть проблемы с получением текста из тега <aside. Я получаю пустой результат. пожалуйста, помогите.

<aside class="ckdc-popup-wrapper meter-popup-wrapper recipe-energy-hover-wrapper" aria-hidden="true">
                <div class="nutrient fiber"><span class="nutrient-title">Fiber:</span> <span class="nutrient-grams">0 g</span></div>
                <div class="nutrient fat" aria-label="56 %"><span class="nutrient-title">Fat:</span> 56 % (<span class="nutrient-grams">29 g</span>)</div>
                <div class="nutrient protein" aria-label="34 %"><span class="nutrient-title">Protein:</span> 34 % (<span class="nutrient-grams">40 g</span>)</div>
                <div class="nutrient kcal"><span class="nutrient-title">kcal:</span> <span class="nutrient-grams">490</span></div>
                
</aside>

Это то, что я пробовал:

for b in page.find('aside',{'class':'ckdc-popup-wrapper meter-popup-wrapper recipe-energy-hover-wrapper'}):
    print(b.text)

вот как

<aside aria-hidden="true" class="recipe-energy-mark-wrapper ckdc-js-popup" data-js-popup="&lt;aside class=&quot;ckdc-popup-wrapper meter-popup-wrapper recipe-energy-hover-wrapper&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;ckdc-popup&quot;&gt;&lt;span class=&quot;ckdc-popup-inner&quot;&gt;&lt;span class=&quot;ckdc-popup-header&quot;&gt;&lt;span class=&quot;js-link&quot; data-href=&quot;https://www.dietdoctor.com/how-low-carb-is-low-carb&quot; title=&quot;Learn more about low carb strictness&quot;&gt;Moderate low carb&lt;/span&gt;&lt;p&gt;Per serving&lt;/p&gt;&lt;/span&gt;&lt;svg viewBox=&quot;0 0 32 32&quot; class=&quot;nutrients-chart&quot;&gt;&lt;circle r=&quot;16&quot; cx=&quot;16&quot; cy=&quot;16&quot; stroke-dasharray=&quot;101 100&quot; class=&quot;fat&quot;&gt;&lt;title&gt;Fat 56.324679651686%&lt;/title&gt;&lt;/circle&gt;&lt;circle r=&quot;16&quot; cx=&quot;16&quot; cy=&quot;16&quot; stroke-dasharray=&quot;43.675320348314 100&quot; class=&quot;protein&quot;&gt;&lt;title&gt;Protein 56.324679651686%&lt;/title&gt;&lt;/circle&gt;&lt;circle r=&quot;16&quot; cx=&quot;16&quot; cy=&quot;16&quot; stroke-dasharray=&quot;9.5141604591551  100&quot; class=&quot;carbs&quot;&gt;&lt;title&gt;Calories 9.5141604591551%&lt;/title&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;div class=&quot;nutrient carbs&quot; aria-label=&quot;10 %&quot;&gt;&lt;span class=&quot;nutrient-title&quot;&gt;Net carbs:&lt;/span&gt; 10 % (&lt;span class=&quot;nutrient-grams&quot;&gt;11 g&lt;/span&gt;)&lt;/div&gt;&lt;div class=&quot;nutrient fiber&quot;&gt;&lt;span class=&quot;nutrient-title&quot;&gt;Fiber:&lt;/span&gt; &lt;span class=&quot;nutrient-grams&quot;&gt;0 g&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;nutrient fat&quot; aria-label=&quot;56 %&quot;&gt;&lt;span class=&quot;nutrient-title&quot;&gt;Fat:&lt;/span&gt; 56 % (&lt;span class=&quot;nutrient-grams&quot;&gt;29 g&lt;/span&gt;)&lt;/div&gt;&lt;div class=&quot;nutrient protein&quot; aria-label=&quot;34 %&quot;&gt;&lt;span class=&quot;nutrient-title&quot;&gt;Protein:&lt;/span&gt; 34 % (&lt;span class=&quot;nutrient-grams&quot;&gt;40 g&lt;/span&gt;)&lt;/div&gt;&lt;div class=&quot;nutrient kcal&quot;&gt;&lt;span class=&quot;nutrient-title&quot;&gt;kcal:&lt;/span&gt; &lt;span class=&quot;nutrient-grams&quot;&gt;490&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;nutrient notice&quot;&gt;We don\'t recommend counting calories. &lt;a href=&quot;https://www.dietdoctor.com/low-carb/calories&quot; target=&quot;_blank&quot;&gt;Here\'s why.&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;nutrient notice discrete&quot;&gt;Nutritional information based on the USDA National Nutrient Database. &lt;a href=&quot;https://www.dietdoctor.com/low-carb/recipes/faq#10&quot; target=&quot;_blank&quot;&gt;Read more&lt;/a&gt;&lt;/div&gt;&lt;span class=&quot;fix&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/aside&gt;" role="note" title="">

Здесь представлены все необходимые детали

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Используйте find_all вместо:

for i in soup.find_all('aside'):
    print(i.text)

Вывод:

Fiber: 0 g
Fat: 56 % (29 g)
Protein: 34 % (40 g)
kcal: 490
0 голосов
/ 20 июня 2020

Попробуйте это, вместо использования find вам понадобится find_all

page = BeautifulSoup(resp, "html.parser")

for x in page.find_all('aside',
                       attrs={'class': 'ckdc-popup-wrapper meter-popup-wrapper recipe-energy-hover-wrapper'}):
    print(x.text)

Fiber: 0 g
Fat: 56 % (29 g)
Protein: 34 % (40 g)
kcal: 490
...