You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网页爬取时排除特定选择器元素的代码问题求助

问题解决:排除特定类的元素提取文本

你的代码存在几个关键问题:

  • 语法错误:if条件的括号仅包裹了第一个判断,||及后续判断漏在括号外;另外classes! ==多了空格,应为classes !==。
  • 判断逻辑不合理:直接比较完整class字符串不可靠,元素的class顺序变化或新增其他class都会导致判断失效,正确做法是检查元素是否包含目标类。

修正后的代码:

const elements = await page.$$('.sc-bKKYHN.ejco');
const texts = [];

for (let element of elements) {
  const hasExcludedClass = await element.evaluate(el => 
    el.classList.contains('sc-kfhTrB') || el.classList.contains('sc-bGKsmU')
  );
  
  if (!hasExcludedClass) {
    const text = await element.evaluate(el => el.innerText.replace(/\n/g, '/'));
    texts.push(text);
  }
}

const valuesString = texts.join('/');

说明:

  • 使用classList.contains()检查元素是否包含目标排除类(取每个排除选择器的第一个类即可,这类动态生成的class通常能唯一标识元素),避免因class顺序或额外class导致判断失败。
  • 修正语法错误,调整逻辑为“不包含排除类时才提取文本”。

内容的提问来源于stack exchange,提问作者BadFDlower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:22:50