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

如何用Apps Script批量将URL转换为网页标题?

Google Sheets批量将URL转为网页标题的Apps Script方案

问题背景

需要批量导出房地产数据,将Google Sheets中A列的URL批量转换为对应网页标题。之前尝试IMPORTXML存在调用限制,现有代码仅能提取网站主机名,无法获取完整网页标题。

解决方案代码

1. 自定义函数(支持单个/批量单元格调用)

function GetPageTitle(url) {
  // 处理空值或非字符串类型的输入
  if (!url || typeof url !== 'string') return '';
  
  try {
    // 发起HTTP请求获取网页内容,忽略HTTP异常
    var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
    var html = response.getContentText();
    
    // 匹配<title>标签内的标题内容,不区分大小写
    var titleMatch = html.match(/<title>([^<]+)<\/title>/i);
    return titleMatch ? titleMatch[1].trim() : '无法获取标题';
  } catch (e) {
    return '请求失败: ' + e.message;
  }
}

// 一键批量处理函数:将A列URL对应的标题写入B列
function BatchUpdateTitles() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dataRange = sheet.getDataRange();
  var values = dataRange.getValues();
  
  // 遍历每行数据,处理A列URL并写入B列
  for (var i = 0; i < values.length; i++) {
    var url = values[i][0];
    if (url) {
      values[i][1] = GetPageTitle(url);
      // 添加1秒延迟,避免触发请求频率限制
      Utilities.sleep(1000);
    }
  }
  
  // 将处理结果写回表格
  dataRange.setValues(values);
}

2. 使用方法

  • 单个单元格调用:在B1单元格输入=GetPageTitle(A1),向下拖曳填充即可批量转换每行的URL标题。
  • 一键批量处理:
    1. 打开目标Google Sheets,点击「扩展程序」→「Apps脚本」。
    2. 将上述代码粘贴到脚本编辑器,保存并命名项目。
    3. 返回表格,点击「扩展程序」→「你的项目名称」→「BatchUpdateTitles」,完成授权后即可自动批量更新标题。

注意事项

  • 加入1秒延迟是为了避免触发Google服务或目标网站的请求频率限制,若目标网站限制较松,可适当缩短延迟时间。
  • 部分网站存在反爬机制,可能无法正常获取标题,此时函数会返回「无法获取标题」或具体错误信息。
  • 首次运行脚本需要完成权限授权,按照页面提示操作即可。

示例数据

A列(URL)B列(网页标题)
https://www.realtor.ca/real-estate/27633475/720b-waverley-road-dartmouth-dartmouthFor sale: 720B Waverley Road, Dartmouth, Nova Scotia B2X2G4 - 202426370

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:32:33