Apify中如何用querySelector选取前缀固定的动态类名div元素
基于querySelector匹配固定类名前缀元素的解决方案
可以实现,不需要依赖完整动态类名,核心是利用CSS属性选择器完成前缀匹配,具体方案如下:
通用匹配方案(推荐)
针对类名可能出现在class属性任意位置的场景(元素可能绑定多个其他类名),使用组合选择器覆盖所有情况,不会漏判也不会误判:
// 替换class_name_为你需要匹配的实际类名前缀即可 const targetDivs = document.querySelectorAll('div[class^="class_name_"], div[class*=" class_name_"]');
选择器逻辑说明:
div[class^="class_name_"]:匹配class属性值以class_name_开头的div,覆盖目标类是元素第一个类名的场景div[class*=" class_name_"]:匹配class属性中包含空格+class_name_片段的div,覆盖目标类在多个类名中间、末尾的场景
简化匹配方案(适用场景有限)
如果可以确定目标动态类一定是元素class属性里的第一个类,可直接使用前缀匹配选择器简化写法:
const targetDivs = document.querySelectorAll('div[class^="class_name_"]');
避坑提示
- 不要直接单独使用
div[class*="class_name_"]做匹配:会误选中类似my_class_name_123这种类名里包含前缀片段、但不是以该前缀作为类名开头的元素 - 上述选择器语法在所有支持querySelector的环境(浏览器、Puppeteer/Playwright等爬虫工具、Cheerio等解析库)中均通用
内容的提问来源于stack exchange,提问作者IDP
相关产品推荐
相关产品推荐

