Skip to content

案例 1:热搜数据抓取工具

场景描述

抓取微博热搜榜数据,提取标题和热度值

工具配置

插件信息

  • 插件名称:微博热搜抓取
  • 插件备注:抓取微博热搜榜前50条数据

工具配置

  • 工具名称:get_weibo_hot
  • 工具介绍:抓取微博热搜榜数据,返回标题和热度值
  • 工具参数:
    • count (整数): 抓取数量,默认10,最大50

完整代码

js
/**
 * 微博热搜抓取工具
 *
 * 使用方式:
 * 1. 在工具配置的"页面输入框"中设置:https://s.weibo.com/top/summary
 * 2. 工具代码会直接在目标页面执行,无需手动打开页面
 * 3. 参数:count(抓取数量,默认10,最大50)
 */
class Tool extends OPENUGC_API_V2 {
  constructor(args) {
    super(args);  // 必须调用 super(args) 才能使用 this.args
    this.COUNT = Math.min(args.count || 10, 50);
  }

  async run() {
    try {
      // 如果用户在工具配置中设置了页面URL,
      // 系统已自动打开微博热搜页面
      // 此处代码直接在目标页面执行,无需调用 OpenUrl()

      const hotsearch = [];
      const items = document.querySelectorAll('tbody tr');

      for (let i = 0; i < items.length; i++) {
        const item = items[i];
        const rank = i + 1;
        const titleElement = item.querySelector('.td-02 a');
        const scoreElement = item.querySelector('.td-02 span');

        if (titleElement && rank <= this.COUNT) {
          hotsearch.push({
            rank,
            title: titleElement.innerText.trim(),
            url: 'https://s.weibo.com' + titleElement.getAttribute('href'),
            heat: scoreElement ? scoreElement.innerText.trim() : '',
            extracted_at: new Date().toISOString()
          });
        }
      }

      return {
        success: true,
        platform: '微博',
        count: hotsearch.length,
        data: hotsearch
      };
    } catch (error) {
      return {
        success: false,
        error: error.message,
        timestamp: new Date().toISOString()
      };
    }
  }
}

📌 重要说明

此工具在工具配置中设置页面URL(https://s.weibo.com/top/summary),系统会自动打开页面并执行代码。无需在代码中使用 OpenUrl()

使用示例

用户:请抓取微博热搜前20条
AI:正在调用"微博热搜抓取"工具...

返回:
✅ 成功获取 20 条热搜数据

1. #某明星恋情曝光# - 热度:98.5万
2. #新电影票房破纪录# - 热度:95.2万
...

相关链接

Released under the MIT License.