如何在Google Sheets中自动化批量获取公司URL对应的CEO姓名?
解决Google Sheets自动获取公司CEO姓名的方案
一、Google Sheets内置公式方案(仅适用于上市公司)
- 针对公开上市公司,可直接用
GOOGLEFINANCE函数提取CEO信息。在B2单元格输入:=GOOGLEFINANCE(A2, "ceo") - 局限性:仅支持上市公司,非上市公司无法获取数据;数据源依赖Google Finance,可能存在信息延迟或缺失的情况。
二、Google Apps Script方案(通用型)
如果内置公式无法满足需求,可通过Google Apps Script实现自定义搜索提取,步骤如下:
- 打开目标Google Sheets文档,点击菜单栏「扩展程序」→「Apps Script」。
- 删除默认代码,粘贴以下脚本:
function getCEO(companyIdentifier) { // 从URL提取基础域名作为公司名;若手动传入公司全称,可跳过此处理步骤 let companyName = companyIdentifier.replace(/^(https?:\/\/)?(www\.)?/, '').split('.')[0]; // 构造CEO搜索查询 const searchQuery = `${companyName} CEO`; const searchUrl = `https://www.google.com/search?q=${encodeURIComponent(searchQuery)}`; try { // 发起搜索请求 const response = UrlFetchApp.fetch(searchUrl, {muteHttpExceptions: true}); const htmlContent = response.getContentText(); // 匹配搜索结果中的CEO姓名(Google页面结构可能变化,需适时调整正则规则) const ceoMatch = htmlContent.match(/<span class="BNeawe vvjwJb AP7Wnd">(.*?)<\/span>/); return ceoMatch ? ceoMatch[1] : "未找到CEO信息"; } catch (e) { return "请求出错:" + e.message; } } - 保存脚本(命名为
GetCEO),返回Google Sheets。 - 在B2单元格输入公式
=getCEO(A2),下拉填充至所有需要的行即可。
注意事项
- 网页抓取依赖Google搜索页面结构,若后续页面更新,需调整正则匹配规则;
- Google对未授权的搜索请求有访问频次限制,若出现报错,可改用Google Custom Search API(需申请API密钥及搜索引擎ID,修改脚本调用逻辑);
- 若URL提取的公司名不准确,可在C列手动填写公司全称,将公式改为
=getCEO(C2)。
内容的提问来源于stack exchange,提问作者GB the Newb
相关产品推荐
相关产品推荐

