如何在Google Sheets中批量自动将URL转换为标题/公司名称?
解决Google Sheets批量将URL转为公司名称的方案
优化IMPORTXML公式
IMPORTXML返回无关内容,多是因为//title路径未精准匹配,或是部分网站用JS动态渲染内容导致抓取失效。试试这些调整:
- 强制提取第一个title节点:
=IMPORTXML($I2,"(//title)[1]") - 若网站是JS动态渲染,改用
IMPORTFROMWEB插件(在Google Workspace Marketplace搜索安装,免费版有基础额度),公式示例:=IMPORTFROMWEB($I2,"title"),它能处理动态加载的页面内容。
非开发者友好的Apps Script脚本
如果之前ChatGPT生成的脚本无效,试试这个简化版,仅提取页面标题,步骤如下:
- 打开Google Sheets,点击「扩展程序」→「Apps Script」
- 删除默认代码,粘贴以下脚本:
function getPageTitle(url) { if (!url) return ""; try { const options = { muteHttpExceptions: true, headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } }; const response = UrlFetchApp.fetch(url, options); const html = response.getContentText(); const titleMatch = html.match(/<title>(.*?)<\/title>/i); return titleMatch ? titleMatch[1].trim() : "无标题"; } catch (e) { return "获取失败"; } }
- 点击「保存」,给脚本命名(比如
GetPageTitle),首次运行按提示完成权限授权 - 返回表格,在空白单元格输入
=getPageTitle(I2),下拉即可批量填充结果
替代方案:用Power Query批量提取
- 选中URL列,点击「数据」→「数据导入」→「从表格/范围」
- 在Power Query编辑器中添加自定义列,输入公式:
Web.Page(Web.Contents([URL])){0}[Data]{0}[Title]
- 关闭编辑器并加载数据到表格,提取到标题后可手动整理为公司名称(若标题包含公司信息)
手动辅助方案
如果以上方法有障碍,可使用浏览器插件批量提取标题,比如Chrome的Linkclump:选中页面上的多个URL链接,一键导出所有标题后复制回表格。
内容的提问来源于stack exchange,提问作者Lliam
相关产品推荐
相关产品推荐

