{"repo":"superboyyy/xianyu_spider","free":true,"listed":false,"github":"https://github.com/superboyyy/xianyu_spider","clone":"git clone https://github.com/superboyyy/xianyu_spider.git","description":"闲鱼爬虫，基于闲鱼网页端开发，使用 FastAPI 构建的闲鱼商品搜索接口，支持异步并发请求和自动化数据去重存储。","language":"Python","stars":802,"topics":["scrapy","xianyu"],"license":null,"category":"databases-storage","readme_excerpt":"闲鱼商品搜索API 基于 FastAPI 构建的闲鱼商品搜索接口，支持异步并发请求和自动化数据去重存储。现已支持登录。 功能特性 - 🔍 关键词商品搜索（支持分页、排序、价格和地区筛选） - ⚡ 异步高性能爬取（HTTP 直连搜索接口，默认按最新发布排序） - 🔐 支持扫码登录和扫脸认证；登录失效后搜索按未登录继续 - 🛡️ 智能数据去重（基于链接特征哈希值） - 💾 数据持久化存储（关系数据库） - 📊 返回新增记录统计信息，以及当前是否登录态 技术栈 组件 用途 ---------------- -------------------------- FastAPI RESTful API框架 httpx 异步 HTTP 搜索 / 登录请求 Playwright 扫脸认证 Tortoise ORM 异步数据库ORM SQL 数据持久化存储 Uvicorn ASGI服务器 快速开始 环境配置 1. 安装依赖 2. 创建 .env 文件（可选；不配的话默认用 data/xianyu.sqlite3 ） 启动服务 登录 终端会显示登录二维码。扫码确认后，如需扫脸认证会自动打开浏览器完成。 也可以： 登录态保存在 data/session.json 。 GET /auth/status 会向闲鱼确认 Cookie 是否仍有效；失效则显示未登录。 已登录 Cookie 失效后，搜索仍按未登录继续（HTTP 200， logged in: false ，并带 login expired ）。需要登录的接口会 401，请重新运行 python spider.py login 。 搜索 已登录时会自动带上 data/session.json 。默认写入数据库； --no-save 只打印 JSON。Cookie 失效时搜索不中断，结果里会标明 login expired 。 API 文档 访问 http://localhost:8000/docs 查看交互式文档 搜索接口 请求参数示例 ： sort 可选： newest （默认，最新发布）、 price asc 、 price desc 、 default （综合）。 响应示例 ： 使用示例 建议使用 Apifox 或者 Postman 进行测试 cURL 请求 Python 客户端 注意事项 1. 法律合规 使用前请确保遵守《网络安全法》和闲鱼平台 Robots 协议，本代码仅用于学习研究 2. 反爬机制 建议配置代理 IP 池和随机请求间隔，默认配置可能触发反爬限制 3. 性能调优 - 调整数据库连接池配置（ pool recycle 等参数） - 建议生产环境部署时增加 Redis 缓存层 交流与贡献 欢迎贡献，也欢迎友善交流：https://t.me/+fHzEZCAdSwA0NTZl 版权声明 本项目采用 MIT License，请合理使用并注明出处。数据抓取结果不得用于商业用途。","default_branch":null,"files":null,"tree":[],"storefront":"/r/superboyyy","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/superboyyy/xianyu_spider/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}