如何将Twitter主页关注者数抓取至Google Sheet?
提取Twitter主页关注者数量到Google Sheet的方法
直接用IMPORTXML没法精准解析<head>里的JSON-LD数据,得换思路先提取完整JSON内容再解析:
方法一:内置函数组合实现
提取完整JSON-LD内容
先用IMPORTHTML定位到<script type="application/ld+json">标签内的文本,再用TEXTJOIN把零散的换行文本拼接成完整JSON字符串:=TEXTJOIN("", TRUE, IMPORTHTML("https://twitter.com/nbc", "xpath", "//script[@type='application/ld+json']/text()"))把公式里的
https://twitter.com/nbc替换成目标Twitter主页链接即可。精准解析关注者数量
将上面的公式嵌套进JSON_EXTRACT,用JSON路径定位目标值。如果"Follows"统计项在数组首位,可直接用:=JSON_EXTRACT(TEXTJOIN("", TRUE, IMPORTHTML("https://twitter.com/nbc", "xpath", "//script[@type='application/ld+json']/text()")), "$.author.interactionStatistic[0].userInteractionCount")要是担心统计项顺序变动,用
JSON_EXTRACT_ARRAY配合FILTER筛选更稳妥:=INDEX(FILTER(JSON_EXTRACT_ARRAY(TEXTJOIN("", TRUE, IMPORTHTML("https://twitter.com/nbc", "xpath", "//script[@type='application/ld+json']/text()")), "$.author.interactionStatistic"), JSON_EXTRACT(FILTER(JSON_EXTRACT_ARRAY(TEXTJOIN("", TRUE, IMPORTHTML("https://twitter.com/nbc", "xpath", "//script[@type='application/ld+json']/text()")), "$.author.interactionStatistic"), TRUE), "$.name") = "Follows"), 1, 0).userInteractionCount
方法二:自定义Google Apps Script函数(更可靠)
如果内置函数组合太繁琐,写个自定义函数遍历数组找目标值:
- 打开Google Sheet,点击「扩展程序」→「Apps Script」。
- 删除默认代码,粘贴以下脚本:
function GET_TWITTER_FOLLOWERS(url) { const response = UrlFetchApp.fetch(url); const html = response.getContentText(); const jsonMatch = html.match(/<script type="application\/ld\+json">(.*?)<\/script>/s); if (!jsonMatch) return null; const jsonData = JSON.parse(jsonMatch[1]); const stats = jsonData.author.interactionStatistic; for (let stat of stats) { if (stat.name === "Follows") { return stat.userInteractionCount; } } return null; } - 保存脚本(可自定义项目名),回到Sheet单元格输入:
即可直接获取关注者数量。=GET_TWITTER_FOLLOWERS("https://twitter.com/nbc")
注意:自定义函数首次运行需要完成权限授权,按提示操作即可。
内容的提问来源于stack exchange,提问作者Reid
相关产品推荐
相关产品推荐

