使用BeautifulSoup提取span标签内容报SelectorSyntaxError如何解决
报错原因
你使用的CSS选择器语法中,类名包含括号(、)这类CSS保留特殊字符,不能直接通过.类名的格式匹配。BeautifulSoup依赖的soupsieve解析器会将(识别为选择器语法符号,而非类名的组成部分,因此抛出选择器语法错误。
正确提取方案
你可以选择以下任意一种方式实现目标内容提取:
- 方式一:使用CSS属性包含选择器匹配指定类名,灵活度最高,无需匹配所有类
data = soup2.select_one('span[class*="Fz(36px)"]').text.strip()
- 方式二:使用
find方法指定完整class属性匹配,无需处理选择器特殊字符
data = soup2.find('span', class_="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)").text.strip()
- 方式三:精准匹配完整class属性的CSS选择器写法
data = soup2.select_one('span[class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)"]').text.strip()
内容的提问来源于stack exchange,提问作者Animesh Singh
相关产品推荐
相关产品推荐

