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

2024-05-20 17:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我需要从某个类中获取一些信息,这些信息是我用find_all找到的。当我再次尝试使用find_all、extract或任何其他方法时,我得到了错误

我尝试了不同的方法,但每次都得到相同的结果。我是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>]

Tags: divinfosrcimgstyleitemsitemwidth
1条回答
网友
1楼 · 发布于 2024-05-20 17:32:58

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)

相关问题 更多 >