python - 使用 beautifulsoup Python 检查 HTML 中是否存在特定类

标签 python html web-scraping beautifulsoup

我正在编写脚本,想检查 html 中是否存在特定类。

from bs4 import BeautifulSoup
import requests

def makesoup(u):
    page=requests.get(u)
    html=BeautifulSoup(page.content,"lxml")
    return html
html=makesoup('https://www.yelp.com/biz/soco-urban-lofts-dallas')

print("3 star",html.has_attr("i-stars i-stars--large-3 rating-very-large")) #it's returning False
res = html.find('i-stars i-stars--large-3 rating-very-large")) #it's returning NONE

请指导我如何解决这个问题?如果我以某种方式获得 title (title="3.0 star rating") 也对我有用。控制台 HTML 屏幕截图 enter image description here

<div class="i-stars i-stars--large-3 rating-very-large" title="3.0 star rating">
  <img class="offscreen" height="303" src="https://s3-media1.fl.yelpcdn.com/assets/srv0/yelp_design_web/8a6fc2d74183/assets/img/stars/stars.png" width="84" alt="3.0 star rating">
    </div>

最佳答案

has_attr 是一种检查元素是否具有所需的属性 的方法。 class 是一个属性,i-stars i-stars--large-3 rating-very-large 是它的

find 需要 CSS selectors ,而不是类值。因此,您应该改为使用 html.find('div.i-stars.i-stars--large-3.rating-very-large')。这是因为您正在寻找具有所有这些类的div

关于python - 使用 beautifulsoup Python 检查 HTML 中是否存在特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40746777/

相关文章:

python - pyExchange 的时区问题

html - 剪下透明三 Angular 形的图像

javascript - Workers 无法在 WPF 项目中嵌入的 HTML 页面中工作

python - 在 Python 中抓取第二页会产生与浏览到第二页不同的数据

javascript - Google Chrome 扩展中的网页抓取(JavaScript + Chrome API)

python - 如何将 django.core.urlresolvers.reverse 与函数引用而不是命名的 URL 模式一起使用?

python - Django 模型 : Save computed value in a model field

python - Databricks - 启动 REPL 失败

html - 将鼠标悬停在其中一个元素上时,如何突出显示 tr 元素的前 2 个 td 元素?

html - 使用 Xpath 抓取不一致的 DOM