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

Google Apps Script结合CheerioGS筛选指定表格及过滤特定行实现

可行实现代码

你之前的代码问题出在选择器的过滤逻辑错误,:contains 匹配的是当前元素及所有子元素的文本,直接在 inj-container 层用 :not(contains) 会误过滤,而且分两次遍历写入容易出现行错位问题。下面是修正后的可运行代码:

function PaginaDoJogo() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Dados Importados');
  const url = 'https://www.sportsgambler.com/injuries/football/argentina-superliga/';
  const contentText = UrlFetchApp.fetch(url).getContentText();
  const $ = Cheerio.load(contentText);

  // 先定位到Argentinos Jrs对应的完整球队区块
  const teamBlock = $('div.team-block:has(div.team-title:contains("Argentinos Jrs"))');
  const output = [];

  // 遍历该区块下所有伤病行
  teamBlock.find('div.inj-container').each((_, el) => {
    // 过滤掉info为Away on International duty的行
    const infoText = $(el).find('span.inj-info').text().trim();
    if (infoText === 'Away on International duty') return;

    // 提取球员名和回归时间
    const player = $(el).find('span.inj-player').text().trim();
    const returnDate = $(el).find('span.inj-return.h-sm').text().trim();
    if (player && returnDate) output.push([player, returnDate]);
  });

  // 批量写入表格,避免多次调用接口卡顿
  if (output.length > 0) {
    sheet.getRange(2, 1, output.length, 2).setValues(output);
  }
}
修改说明
  • 先通过team-block和team-title精准定位到Argentinos Jrs对应的球队数据区块,避免匹配到其他球队同名元素
  • 统一遍历每一行数据后再做条件过滤,比选择器直接过滤更准确,不会出现误判
  • 收集完所有符合条件的数据后批量写入表格,执行效率更高,也不会出现两次遍历导致的行列错位问题
  • 增加了非空判断,避免写入空值

注意:运行前请确认你已经正确将CheerioGS库导入项目,且当前表格存在名为Dados Importados的工作表,否则会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:18:02