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

使用Google Sheets IMPORTXML获取Twitter推文内容失败求助

解决Google Sheets IMPORTXML抓取Twitter推文返回空的问题

问题根源

Twitter(原X)的推文内容是动态加载的:页面初始加载的静态HTML里并没有包含推文数据,这些内容是后续通过JavaScript异步请求接口渲染出来的。而Google Sheets的IMPORTXML只能抓取页面初始的静态HTML,所以不管你用什么XPath,都无法获取到动态渲染的推文内容。

可行解决方案

使用Google Apps Script结合Twitter API

这是最稳定的方法,步骤如下:

  1. 前往Twitter开发者平台申请API密钥(包括API Key、API Secret)
  2. 在你的Google Sheets中,点击「扩展程序」→「Apps脚本」打开脚本编辑器
  3. 替换默认代码为以下脚本(记得填入你自己的API密钥):
function fetchNoCodeTweets() {
  // 替换为你的Twitter API密钥
  const apiKey = '你的API Key';
  const apiSecret = '你的API Secret';
  
  // 获取Bearer Token
  const bearerToken = Utilities.base64Encode(`${apiKey}:${apiSecret}`);
  const authResponse = UrlFetchApp.fetch('https://api.twitter.com/oauth2/token', {
    method: 'POST',
    headers: {
      'Authorization': `Basic ${bearerToken}`,
      'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
    },
    payload: 'grant_type=client_credentials'
  });
  const authData = JSON.parse(authResponse.getContentText());
  const accessToken = authData.access_token;
  
  // 搜索#NoCode标签的推文,可调整count参数控制获取数量
  const searchUrl = 'https://api.twitter.com/1.1/search/tweets.json?q=%23NoCode&count=10';
  const searchResponse = UrlFetchApp.fetch(searchUrl, {
    headers: { 'Authorization': `Bearer ${accessToken}` }
  });
  const tweetsData = JSON.parse(searchResponse.getContentText());
  
  // 将推文写入当前表格
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clearContents();
  sheet.appendRow(['推文文本']);
  
  tweetsData.statuses.forEach(tweet => {
    sheet.appendRow([tweet.text]);
  });
}
  1. 保存脚本,点击运行按钮,按照提示完成授权
  2. 运行完成后,表格会自动填充#NoCode标签的推文内容

替代方案(无需API)

如果不想申请API,可先通过第三方工具(支持导出Twitter搜索结果的工具)导出#NoCode标签的推文为CSV格式,再导入到Google Sheets中。但这种方法稳定性不如API,且受工具限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:22:41