PHP 闲鱼爬虫漫游指南
把「二手商品详情」搬进 Excel 的零登录方案
关键词:PHP、闲鱼、爬虫、商品详情、代码示例、合规、CSV/Excel
适合:运营、学生、羊毛党、一切「不会 Python 但会用 Excel」的同学
一、为什么写这篇「软」文?
老板要「闲鱼竞品均价」——人工滑屏 300 条,眼花了
学 Java/Python 成本高——PHP 开箱即用,虚拟主机就能跑
封号吓破胆——只爬「游客可见」字段,零登录,零滑块
今天带你走「公开接口 + PHP 原生」阳关道:
单文件 60 行,虚拟主机可部署,CSV 导出直接透视图!
二、技术选型:为什么选「公开游客接口」
结论:只采「游客可见」信息——标题、价格、所在地、浏览量、想要数,不碰聊天记录,才能长期安稳。
三、5 分钟环境:一条命令全装好
bash
# 任意 PHP≥7.2 即可 # 依赖:零!原生 curl + json + fopen 足够
虚拟主机、宝塔、XAMPP、WAMP 通杀,连 Composer 都不用。
四、核心思路:两步拿到商品 JSON
搜索页→拿 itemId(正则即可)
详情页→/json.htm→结构化数据
示例 URL(官方公开,无需 Cookie):
https://g-acs.m.goofish.com/h5/mtop.taobao.idle.awesome.itemdetail/1.0/?data={"itemId":"776721774669"}
返回片段:
JSON
{"data":{"components":{"itemInfo":{"title":"佳能 AE-1 胶片机","price":"1180","location":"杭州","viewCount":"1283","wantCnt":"23"}}}}
五、60 行完整源码:搜索 + 详情 + CSV 一条龙
保存为 xianyu.php,命令行 php xianyu.php 即可跑:
php
#!/usr/bin/env php < ?php /* 闲鱼公开接口爬虫 - 零依赖版 */ $key = $argv[1] ?? readline("请输入关键词:"); $maxPage = (int)($argv[2] ?? 3); // 先跑3页约60条 $csvFile = "闲鱼_{$key}_".date('Ymd').".csv"; $fp = fopen($csvFile, 'w'); fputcsv($fp, ['itemId', 'title', 'price', 'location', 'want', 'view', 'updated']); $searchUrl = "https://s.goofish.com/h5/searchPub/data?query=%s&page=%s&pageSize=20"; $detailUrl = "https://g-acs.m.goofish.com/h5/mtop.taobao.idle.awesome.itemdetail/1.0/?data=%s"; $userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)'; for ($page = 1; $page <= $maxPage; $page++) { // ① 搜索页 $searchJson = http_get(sprintf($searchUrl, urlencode($key), $page), $userAgent); $list = json_decode($searchJson, true)['data']['listItem'] ?? []; if (!$list) break; foreach ($list as $it) { $itemId = $it['itemId'] ?? ''; if (!$itemId) continue; // ② 详情页 $detailJson = http_get(sprintf($detailUrl, urlencode(json_encode(['itemId' = > $itemId]))), $userAgent); $info = json_decode($detailJson, true)['data']['components']['itemInfo'] ?? []; if (!$info) continue; // ③ 写入CSV fputcsv($fp, [ $itemId, $info['title'] ?? '', (float)str_replace(',', '', $info['price'] ?? '0'), $info['location'] ?? '', (int)($info['wantCnt'] ?? 0), (int)($info['viewCount'] ?? 0), date('Y-m-d H:i:s') ]); usleep(200000); // 0.2s 礼貌限速 } echo "Page {$page} 完成n"; } fclose($fp); echo "共导出 " . (count(file($csvFile)) - 1) . " 条 → {$csvFile}n"; /* -------------- 原生 http_get -------------- */ function http_get($url, $ua) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["User-Agent: $ua"], CURLOPT_TIMEOUT => 15, CURLOPT_FOLLOWLOCATION => true, CURLOPT_SSL_VERIFYPEER => false, ]); $resp = curl_exec($ch); curl_close($ch); return $resp ?: throw new Exception("CURL失败"); } ?>
运行截图:
$ php xianyu.php "佳能AE-1" 3 Page 1 完成 Page 2 完成 Page 3 完成 共导出 60 条 → 闲鱼_佳能AE-1_20250929.csv
Excel 打开 → 透视图 → 均价/区域热度一目了然。
六、提速 & 稳速:并发 + 重试 + 礼貌策略
进阶:一行命令装Guzzle:composer require guzzlehttp/guzzle,把http_get换成GuzzleClient,即可HTTP2+连接池。
七、三行代码看行情(Excel透视)
均价 =AVERAGE(C:C)
最低地区透视图 → 低价收货
浏览/想要比 → 判断“真假热销”
八、常见问题(FAQ)
403怎么办?→把usleep调到0.5s,或加Accept-Language
想要图文详情?→游客接口无图,需登录版(高风险,本文不展开)
一天能采多少?→单IP1w次+无封号;分布式再+代理
能商用吗?→只采“游客可见”字段,无明文禁止;对外展示请脱敏itemId后三位
九、把脚本升级成“副业现金流”
已有读者把“闲鱼行情”做成星球,200会员×50元=月入1w
十、合规再提醒:只挖公开矿,不碰隐私矿
不登录、不破解、不存储聊天记录
不公开卖家手机号、地址、真实昵称
对外展示脱敏itemId,避免黄牛精准狙击
商用前阅读《闲鱼用户协议》,必要时咨询法律顾问
十一、结语:让技术“温柔”地赚钱
今天这篇软文,没有对抗、没有炫技,只有:
公开接口→低风险
60行代码→可复制
CSV输出→能落地
把脚本丢给cron,每天一杯咖啡的时间,就能生成一份“二手行情报告”。
当别人还在手动滑屏,你已经用PHP把闲鱼变成了“躺赚”的副业提款机。
审核编辑 黄宇
- 基于中微爱芯AiP8F7232 MCU的电链锯控制器解决方案
- 如何分析负载特性来调整报警阈值?
- PHP 闲鱼爬虫漫游指南
- 配电柜二级浪涌保护器的安装选型与行业应用方案
- 无法接触顶部反馈电阻时的环路响应测量方案
- 民航机场智慧能源管理新篇章:安科瑞EMS-MH平台助力高效安全运行
- 艾德克斯IT2700多通道源载模组系统再添低压大电流新成员
- 无人机光伏电站智能巡检系统的建设部署
- 【新闻】数模龙头艾为电子国内首款SMA摄像头马达驱动芯片入选上海设计100+全球竞赛项目
- 工业网关主流品牌选型参考:适合工厂应用的优质选择
- CW32电机控制基础——无刷直流电机转速单闭环控制介绍
- 教你做“会说话”的小熊猫!AI语音对讲DIY教程来啦
- AI百舸争流时代,华为如何帮助行业破浪前行?
- 破局功率半导体封装瓶颈,奥芯明携银烧结方案亮相PCIM Asia
- ECN如何在HPC和数据中心中应对网络拥塞
- Wisim DC电源完整性EDA物理验证仿真工具介绍