首页 > 解决方案 > 如何使用美丽的汤选择一个类词

问题描述

我正在开发一个从页面中抓取数据的项目,但在尝试抓取的不是数据本身而是类名时遇到了问题,因为它用于在此地址https://books 设置书籍的评级。 toscrape.com/

当我得到数据时,它是这样的

{'class': ['star-rating', 'Three']}
{'class': ['star-rating', 'One']}
{'class': ['star-rating', 'One']}
{'class': ['star-rating', 'Four']}

这是一本字典,但我只对最后一个条目感兴趣,稍后我会将其保存到数据库中,并会检查那些评分高的条目。

如何忽略星级,只将最后的话存储在列表中?

PS - 这是我用来获得该结果的循环

for content in contents:
    title = content.find('h3').text
    price = content.find('p', class_='price_color').text
    rating = content.find('p').attrs

这是设置 HTML 的方式

<p class="star-rating Three">
 <i class="icon-star"></i>
 <i class="icon-star"></i>
 <i class="icon-star"></i>
 <i class="icon-star"></i>
 <i class="icon-star"></i>
</p>

标签: pythonweb-scrapingbeautifulsoup

解决方案


你不能从列表中得到最后的话吗?喜欢:

data['class'][1]

或者,为了确保获得最后一个:

data['class'][-1]

推荐阅读