如何从我得到的汤结果中提取或分解数据?



所以我需要从某个类中获取我在find_all中找到的一些信息。当我尝试再次使用find_all,或提取或任何其他时,我收到错误。

我尝试了不同的方法,但每次都得到相同的结果。我是python和编程的新手,所以我自己无法弄清楚。

response = BeautifulSoup(response.content, "html.parser")
credit = response.find_all(class_='season_marathon')
#this isn't working, I want to remove all p tags and it's content from "credit"
for p in credit.findAll("span",{"class":"season_marathon"}):
p.decompose()
name = response.find_all(id='content_top_2')
print(credit)

我得到了

AttributeError: ResultSet object has no attribute 'findAll'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" 

基本上我想把这个转过来:

[<div class="season_marathon">
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_24.jpg"/></div>
<div class="info">
<b>За клан и двор</b>
<p>Пройти Море Иллюзий в режиме «Месть богов» или Сумеречную библиотеку вместе с участником вашего клана и получить очки доблести и золото гильдии 10/15/20 раз.</p>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_22.jpg"/></div>
<div class="info">
<b>Дух пламенных грифов</b>
<p>Выполнить ежедневное задание «Возродившийся из пламени» на Западном континенте 10/15/20 раз.</p>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_16.png"/></div>
<div class="info">
<b>Сила стихий</b>
<p>Собрать яшмы 5-го уровня и выполнить ежедневное задание «Ценный камень» для 100-го и выше уровня в Морае 10/15/20 раз.</p>
<div class="marathon-rating marathon-rating--2"></div>
</div>
<div class="progress"><div style="width: 75%"></div><span>15/20</span></div>
</div>
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_12.png"/></div>
<div class="info">
<b>Нелегкая дорога</b>
<p>Выполнить цепочку заданий «Снежный караван» и получить награду у Помощника командира 10/15/20 раз.</p>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_23.jpg"/></div>
<div class="info">
<b>Подземное царство</b>
<p>Победить Гибельного мистика Хунь Сяо и выполнить ежедневное задание «Песнь льда» в Ледяном аду 10/15/20 раз.</p>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_21.jpg"/></div>
<div class="info">
<b>Битва с драконом</b>
<p>Пройти Пещеры вечности в режиме для игроков 100-го уровня и выше 10/15/20 раз.
Не забудьте сдать задание и получить Свидетельство победы.</p>
<div class="marathon-rating marathon-rating--2"></div>
</div>
<div class="progress"><div style="width: 75%"></div><span>15/20</span></div>
</div>
<div>
<div class="quest-marathon__item"><img src="//pw.cdn.gmru.net/img/promo_items/mqs_banner_25.jpg"/></div>
<div class="info">
<b>Хищные звери</b>
<p>Выполнить цепочку заданий на получение призыва и победить босса «Песчаник» 10/15/20 раз, а затем сдать задание Старейшине.</p>
<div class="marathon-rating marathon-rating--2"></div>
</div>
<div class="progress"><div style="width: 75%"></div><span>15/20</span></div>
</div>
</div>]

进入这个:

[<div class="season_marathon">
<div>
<div class="info">
<b>За клан и двор</b>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="info">
<b>Дух пламенных грифов</b>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="info">
<b>Сила стихий</b>
<div class="marathon-rating marathon-rating--2"></div>
</div>
<div class="progress"><div style="width: 75%"></div><span>15/20</span></div>
</div>
<div>
<div class="info">
<b>Нелегкая дорога</b>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="info">
<b>Подземное царство</b>
<div class="marathon-rating marathon-rating--"></div>
</div>
<div class="progress"><div style="width: 0%"></div><span>0/20</span></div>
</div>
<div>
<div class="info">
<b>Битва с драконом</b>
<div class="marathon-rating marathon-rating--2"></div>
</div>
<div class="progress"><div style="width: 75%"></div><span>15/20</span></div>
</div>
<div>
<div class="info">
<b>Хищные звери</b>
<div class="marathon-rating marathon-rating--2"></div>
</div>
<div class="progress"><div style="width: 75%"></div><span>15/20</span></div>
</div>
</div>]
ResultSet

没有"findAll"属性。 您需要从中选择一个标签。 我认为这可以对你有所帮助。

response = BeautifulSoup(response.content, "html.parser")
credit = response.find_all(class_='season_marathon')
for p in credit[0].findAll("p"):
p.decompose()
print(credit)