为什么在soup.find()中不能写class=“xxx”?

Posted on 2023-03-24 09:14  杰士妖  阅读(209)  评论(0)    收藏  举报

为什么在soup.find()中不能写class=“xxx”?

之前就遇到过,当时认为soup.find()函数只能识别id之类的属性。这是错误的
主要原因是class作为python的关键字,是被保留的,直接输入class会被识别为python的类。
如需要匹配标签内的class属性,可以通过以下两种方式:

点击查看代码
# 第一种:在attrs属性用字典进行传递参数
find_class = soup.find(attrs={'class':'item-1'})
print('findclass:',find_class,'\n')
# 第二种:BeautifulSoup中的特别关键字参数class_
beautifulsoup = soup.find(class_ = 'item-1')
print('BeautifulSoup_class_:',beautifulsoup_class_,'\n')

这也解释了为什么看到了有些开发者会写到soup.find(class_="xxx)。

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3