使用BeautifulSoup4从CSS3伪元素获取内容

时间:2017-06-18 02:31:36

标签: python web-scraping beautifulsoup

我目前正在使用Python和Beautiful Soup学习网页报废。我被赋予了一个任务,其中网页在css伪元素中具有星级评级

<span class="bb_rating bble_50">
  ::before
  ::after 
</span>

bble_50::after {
  content: "\e00b\e00b\e00b\e00b\e00b";
}

enter image description here

我想知道如何从css psuedo元素中获取内容? 需要帮忙。感谢

1 个答案:

答案 0 :(得分:1)

我认为你不应该在这里解析CSS。只需将类名映射到评级

class_to_rating = {
    "bble_45": 4.5,
    "bble_50": 5
}
elm = soup.select_one(".bb_rating")
rating_class = next(value for value in elm["class"] if value.startswith("bble_"))

print(class_to_rating.get(rating_class, "Unknown rating"))