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

如何通过Google Apps Script获取谷歌搜索结果中的地址与电话信息

解决Google自定义搜索API获取商家地址/电话的配置方案

一、修正可编程搜索引擎的站点范围配置

你推测的原因正确,仅指定部分站点会导致API无法抓取谷歌搜索结果中的商家卡片信息,需调整站点设置:

  • 登录可编程搜索引擎后台,进入目标引擎的配置页
  • 在「Sites to search」区域,选择 「Search the entire web but emphasize included sites」(搜索全网,可优先指定站点),或直接选「Search the entire web」(搜索全网),确保API能覆盖完整的谷歌搜索结果池

二、调整API请求参数,提取本地商家信息

默认的Custom Search API返回普通网页结果,需通过参数和数据解析来获取地址、电话这类本地信息,修改后的代码如下:

function searchResult() {
  var apiKey = 'your-api-key';
  var cx = 'search-engine-id';
  var query = 'The Bluegrass Coffee and Bourbon Lounge';

  // 构建请求URL,添加必要参数
  var requestUrl = 'https://www.googleapis.com/customsearch/v1?key=' + apiKey + 
                   '&cx=' + cx + 
                   '&q=' + encodeURIComponent(query) +
                   '&num=1'; // 仅返回最相关的结果

  var response = UrlFetchApp.fetch(requestUrl);
  var resultData = JSON.parse(response.getContentText());

  // 解析本地商家信息
  if (resultData.items?.[0]?.pagemap?.local_result) {
    var localDetails = resultData.items[0].pagemap.local_result[0];
    Logger.log('地址: ' + localDetails.address);
    Logger.log('电话: ' + localDetails.phone);
  } else {
    Logger.log('未抓取到商家本地信息');
  }
}

三、验证API权限与配额

  • 确认你的API密钥已在Google Cloud控制台启用「Custom Search API」
  • 检查配额:该API免费配额为每日100次请求,超出后需在控制台申请升级

四、更稳定的替代方案:使用Google Places API

如果自定义搜索API仍无法稳定获取商家信息,推荐使用专门的Places API,该接口专为本地商家信息设计,代码示例如下:

function getPlaceDetails() {
  var apiKey = 'your-api-key';
  var businessName = 'The Bluegrass Coffee and Bourbon Lounge';

  // 第一步:搜索商家获取place_id
  var searchUrl = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=' + 
                  encodeURIComponent(businessName) + '&key=' + apiKey;
  var searchRes = UrlFetchApp.fetch(searchUrl);
  var searchData = JSON.parse(searchRes.getContentText());

  if (searchData.results.length > 0) {
    var placeId = searchData.results[0].place_id;
    // 第二步:通过place_id获取完整商家信息
    var detailsUrl = 'https://maps.googleapis.com/maps/api/place/details/json?place_id=' + 
                     placeId + '&key=' + apiKey + '&fields=formatted_address,formatted_phone_number';
    var detailsRes = UrlFetchApp.fetch(detailsUrl);
    var detailsData = JSON.parse(detailsRes.getContentText());

    Logger.log('地址: ' + detailsData.result.formatted_address);
    Logger.log('电话: ' + detailsData.result.formatted_phone_number);
  } else {
    Logger.log('未找到匹配的商家');
  }
}

注意:Places API需单独在Google Cloud控制台启用,其配额和计费规则与Custom Search API不同,需提前确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:30:34