Python爬虫遇到HTML标签属性带有 ‘-’ 符号时怎么处理

时间:2025-04-08 10:49:51

题主在写一些爬虫代码的时候,偶尔会遇到一些标签中带有‘-’的属性名称。
例如:

<p css-style="a style">.....</p>

之前看有的写法就是先利用BeautifulSoup的find_all函数找到所有p标签,再遍历询问 if p[‘css-style’] == ‘a style’。
因为 find_all(‘p’, css-style=‘a style’) 是不合规的.

这里完全可以使用BeautifulSoup的select()函数,利用类似CSS选择器的方法来筛选元素。它返回的类型是一个list

p_list = bs.select("p[cms-style='a style']")

无论是查找id还是class,select()函数的查找方式都和CSS类似

soup.select('.a_class') #查找class="a_class"
soup.select('#a_id')	#查找