如何为Google Sheets的IMPORTXML获取正确XPath?解决#N/A错误
解决Google Sheets无法用IMPORTXML获取TikTok粉丝数的问题
我之前帮朋友解决过一模一样的问题,核心原因其实很简单:TikTok的页面内容是JavaScript动态渲染的,而Google Sheets的IMPORTXML只能抓取页面的原始静态HTML源码——你在Chrome开发者工具里复制的XPath是浏览器渲染完成后的DOM路径,但IMPORTXML请求到的原始HTML里根本不存在这个节点,自然就返回#N/A(Import Content is Empty)错误了。
下面给你两个可行的解决方案,不用局限于IMPORTXML:
方案一:用Google Apps Script自定义函数(最可靠)
这个方法通过模拟浏览器请求,从TikTok页面的源码中提取隐藏的粉丝数数据,步骤如下:
- 打开你的Google Sheet,点击顶部菜单栏的「扩展程序」→「Apps Script」
- 把默认的代码删掉,替换成下面的脚本:
function getTikTokFollowers(username) { const url = `https://www.tiktok.com/@${username}?lang=en`; // 模拟Chrome浏览器的请求头,避免被TikTok拦截 const requestOptions = { headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' } }; try { const response = UrlFetchApp.fetch(url, requestOptions); const pageContent = response.getContentText(); // 用正则匹配页面中隐藏的粉丝数字段 const followerRegex = /"followerCount":"([\d.]+[KMB])"/; const matchResult = pageContent.match(followerRegex); if (matchResult && matchResult[1]) { return matchResult[1]; // 返回类似"54.3M"的结果 } else { return "未找到粉丝数据"; } } catch (error) { return `请求失败: ${error.toString()}`; } }
- 点击脚本编辑器的「保存」按钮,随便给项目起个名字(比如
TikTokDataScraper),然后点击「运行」——第一次运行会要求授权,按照提示完成权限验证即可。 - 回到Google Sheet,在任意单元格输入
=getTikTokFollowers("charlidamelio"),回车后就能得到你想要的粉丝数啦。
小提示:
- 如果之后正则匹配失效,你可以右键TikTok页面→「查看网页源代码」,搜索
"followerCount",看看字段格式有没有变化,再调整正则表达式即可。 User-Agent可以偶尔更新成最新的Chrome浏览器标识,避免被TikTok的反爬机制拦截。
方案二:使用第三方数据工具(可选)
如果不想写代码,你可以找一些提供TikTok公开数据的第三方服务(注意选择靠谱的平台),大部分这类服务会提供API接口,你可以用Google Sheets的IMPORTJSON自定义函数(需要先安装)来拉取数据。不过这类服务通常有调用次数限制,部分高级功能可能需要付费。
内容的提问来源于stack exchange,提问作者ConfuciusCat
相关产品推荐
相关产品推荐

