我正在写一个脚本,想要检查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 的屏幕截图
解决方法:
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