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

使用Google Apps Script获取OpenSea主页Twitter链接遇403错误求助

解决方案

1. 修复403反爬问题(页面抓取方式)

OpenSea返回403是因为请求被识别为非浏览器发起的机器人请求,只需在请求中添加模拟浏览器的请求头即可绕过。修改后的代码如下:

function getTwitterLink() {
  var url = "https://opensea.io/0xe7dAe42Dee2BB6C1ef3c65e68d3E605faBcA875d";
  // 添加浏览器标识请求头,避免被反爬拦截
  var options = {
    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-Language': 'en-US,en;q=0.9'
    },
    muteHttpExceptions: true // 开启后可查看完整错误响应,方便调试
  };
  
  var response = UrlFetchApp.fetch(url, options);
  var responseCode = response.getResponseCode();
  
  if (responseCode !== 200) {
    Logger.log("请求失败,状态码:" + responseCode);
    Logger.log("响应内容:" + response.getContentText());
    return null;
  }
  
  var html = response.getContentText();
  // 调整正则匹配a标签中的Twitter链接,适配页面结构
  var regex = /href="(https:\/\/twitter\.com\/[^"]+)"/i;
  var match = regex.exec(html);
  
  if (match && match.length > 1) {
    var twitterLink = match[1];
    Logger.log("Twitter Link: " + twitterLink);
    return twitterLink;
  } else {
    Logger.log("未找到Twitter链接。");
    return null;
  }
}

不过这种页面抓取方式稳定性较差,一旦OpenSea调整页面结构,正则就会失效。

2. 使用OpenSea API获取(更可靠方案)

OpenSea提供了官方API接口获取账户信息,返回结果中直接包含社交链接,完全不受页面结构变化影响。

实现步骤:

  1. 登录OpenSea后,在设置页面申请API密钥(免费额度足够个人使用)
  2. 调用账户信息接口提取Twitter链接

修改后的代码如下:

function getTwitterLinkViaAPI() {
  var walletAddress = "0xe7dAe42Dee2BB6C1ef3c65e68d3E605faBcA875d";
  var apiKey = "你的API密钥"; // 替换为你申请到的OpenSea API密钥
  
  var url = "https://api.opensea.io/api/v1/account/" + walletAddress;
  var options = {
    headers: {
      'X-API-KEY': apiKey,
      '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'
    }
  };
  
  try {
    var response = UrlFetchApp.fetch(url, options);
    var data = JSON.parse(response.getContentText());
    
    // 从API返回的社交链接中提取Twitter地址
    var socialLinks = data.account.social_links;
    if (socialLinks && socialLinks.twitter) {
      var twitterLink = "https://twitter.com/" + socialLinks.twitter;
      Logger.log("Twitter Link: " + twitterLink);
      return twitterLink;
    } else {
      Logger.log("API响应中未找到Twitter链接。");
      return null;
    }
  } catch (e) {
    Logger.log("API请求出错:" + e.toString());
    return null;
  }
}

关键说明:

  • API返回的social_links.twitter是Twitter用户名,需要拼接成完整链接使用
  • 该方案依赖官方API,稳定性远高于页面抓取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:22:47