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

基于Google Apps Script爬取Centris.ca地址匹配结果报错解决

问题分析与解决方案

原脚本错误原因

  • URL与请求逻辑问题:原URL使用地理范围搜索接口,并非专门的地址匹配接口,无法准确判断地址是否存在匹配建议;同时Centris的反爬机制会拦截无浏览器标识的请求,导致UrlFetchApp.fetch抛出"Invalid Argument"错误。
  • 匹配逻辑不准确:通过HTML字符串包含判断地址是否存在,容易出现误判(比如地址出现在页面其他无关位置),也无法处理地址格式的细微差异。

修正后的脚本

function searchCentris() {
  const address = "4065 avenue Wilson, Côte-des-Neiges / Notre-Dame-de-Grâce";
  const apiUrl = "https://www.centris.ca/Property/GetAddressAutocomplete";
  
  // 构建搜索参数
  const params = {
    q: address,
    locale: "en"
  };
  
  // 模拟浏览器请求头,避免反爬拦截
  const options = {
    method: "GET",
    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",
      "Accept": "application/json, text/javascript, */*; q=0.01"
    },
    muteHttpExceptions: true
  };
  
  // 拼接完整请求URL
  const queryString = Object.keys(params).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join("&");
  const fullUrl = `${apiUrl}?${queryString}`;
  
  try {
    const response = UrlFetchApp.fetch(fullUrl, options);
    if (response.getResponseCode() !== 200) {
      console.log(`HTTP Error: ${response.getResponseCode()}`);
      return "Unknown";
    }
    
    // 解析接口返回的地址建议数据
    const addressSuggestions = JSON.parse(response.getContentText());
    // 检查是否存在匹配的地址建议
    const hasMatch = addressSuggestions.some(item => 
      item.label.toLowerCase().includes(address.toLowerCase())
    );
    
    return hasMatch ? "Yes" : "No";
  } catch (error) {
    console.log(`Error: ${error.message}`);
    return "Unknown";
  }
}

方案说明

  1. 使用官方自动补全接口:调用Centris原生的地址自动补全API,该接口专为地址提示设计,返回的JSON数据精准且易解析。
  2. 规避反爬拦截:添加浏览器标识的请求头,模拟真实用户访问,避免被网站拦截。
  3. 精准匹配逻辑:遍历接口返回的地址建议,通过忽略大小写的包含判断确认匹配,减少格式差异导致的误判。
  4. 错误处理机制:捕获请求异常与HTTP错误,返回明确状态并记录日志,方便调试。

使用方式

修改address变量为目标地址后直接运行脚本:

  • 返回Yes:存在地址匹配建议
  • 返回No:无匹配地址
  • 返回Unknown:请求过程中出现错误(可查看脚本日志获取详情)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:00:01