python判断html标签是否存在,使用beautifulsoup Python检查HTML中是否存在特定类

我正在写一个脚本,想要检查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 =“3.0星级”),这对我也有用.控制台HTML rMEtC.png的屏幕截图

3.0 star rating

解决方法:

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,web-scraping,beautifulsoup,html

来源: https://codeday.me/bug/20190706/1393194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值