Skip to content

Goofish Client现代化的二手交易平台 Client

TypeScript 优先,功能强大,高度可扩展

Goofish Client

项目信息

Goofish Client

一个非官方的闲鱼客户端库,支持商品搜索等功能。

NPM Version GitHub Stars GitHub Forks GitHub Issues Views PRs Welcome Build Status

License TypeScript Node.js GitHub Last Commit Bundle Size NPM Downloads

🎯 快速上手

bash
npm install goofish-client
bash
yarn add goofish-client
bash
pnpm add goofish-client
typescript
import { Goofish, LogLevel } from "goofish-client";

// 创建客户端实例
const client = new Goofish({
  cookie: "cookie2=xxxx",
  level: LogLevel.INFO,
});

// 获取首页Feed数据
const feedData = await client.api.mtop.home.getFeed({
  pageSize: 20,
  pageNumber: 1,
});

console.log(`获取到 ${feedData.data.cardList.length} 个商品`);

// 搜索商品
const results = await client.api.mtop.search.search({
  keyword: "iPhone 14",
  pageNumber: 1,
  rowsPerPage: 20,
});

console.log(`找到 ${results.data.resultList.length} 个商品`);

// 获取商品详情
const itemDetail = await client.api.mtop.item.getDetail({
  itemId: "95xxxxxxxxx334",
});

console.log(`商品标题: ${itemDetail.data.itemDO.title}`);

📚 核心功能

🏠 首页推荐

  • 个性化推荐:基于用户行为的智能 Feed 推荐
  • 分页加载:支持无限滚动和分页浏览
  • 实时更新:动态获取最新的商品推荐
  • 丰富标签:商品状态、卖家信用、价格标签等

🔍 智能搜索

  • 关键词搜索:支持复合关键词和模糊匹配
  • 高级筛选:价格区间、发布时间、商品状态等多维度筛选
  • 智能排序:按价格、时间、距离、信用等多种排序方式
  • 地理位置:基于 GPS 的附近商品搜索

📦 商品详情

  • 完整信息:获取商品的详细信息和属性
  • 卖家信息:卖家资料、信用等级、历史记录
  • 图片处理:高清图片获取和多尺寸支持
  • 实时数据:浏览量、收藏数、想要数等实时统计

🔐 身份认证

  • Cookie 认证:支持现有 Cookie 快速认证
  • 二维码登录:完整的扫码登录流程
  • 会话管理:自动 Cookie 更新和状态监控
  • 安全存储:Cookie 安全存储和加密传输

👤 用户管理

  • 用户信息:获取用户基本资料和状态
  • 导航数据:用户导航和菜单信息
  • 状态监控:实时监控登录状态和会话有效性

🔧 高级扩展

  • 自定义客户端:扩展 HTTP 客户端功能
  • 拦截器支持:请求/响应拦截和处理
  • 批量操作:支持批量搜索和数据处理
  • 性能监控:内置性能分析和监控工具

🚀 快速开始指南

1. 基础安装

bash
npm install goofish-client

2. 获取认证信息

选择以下任一方式获取认证:

typescript
import { Goofish, LogLevel } from "goofish-client";

// 方式1: 使用已有Cookie
const client = new Goofish({
  cookie: "your_existing_cookie",
});

// 方式2: 二维码登录
const client = new Goofish({});
const loginResult = await client.api.passport.qr.generate();
// 扫描二维码后获取Cookie...

3. 开始使用

typescript
// 获取首页推荐
const feedData = await client.api.mtop.home.getFeed({
  pageSize: 30,
  pageNumber: 1,
});

// 搜索商品
const products = await client.api.mtop.search.search({
  keyword: "MacBook Pro",
  filter: {
    priceRange: { from: 5000, to: 15000 },
  },
});

// 获取商品详情
const itemDetail = await client.api.mtop.item.getDetail({
  itemId: "95xxxxxxxxx334",
});

// 获取用户信息
const userInfo = await client.api.mtop.user.getUserNav();

📖 学习资源

🤝 加入社区

重要声明

本 Client 为第三方开发工具,仅供学习研究使用。使用前请确保遵守相关平台的服务条款。

TypeScript 类型定义主要覆盖成功响应场景,错误处理请参考官方文档。


基于 GPL-3.0 许可证发布