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把闲鱼变成了“躺赚”的副业提款机。
审核编辑 黄宇
- 终端未来的秘方就是你,高通为你构造专属生态系统
- 信通院发布《量子计算发展态势研究报告(2025年)》
- 移路有AI | 移远通信亮相中国移动合作伙伴大会,联合发布多项5G-A×AI创新成果
- 中国移动携中试基地(制造领域汽车方向)
- OpenAI 携手博通打造首款自研 AI 芯片:算力达 10 吉瓦级,2026 年下半年开始推进研发
- 解决罗德与施瓦茨MXO44示波器新探头量程不匹配的实用指南
- 这类存储,拿下端侧AI红利!
- 慕尼黑啤酒节:在吃与喝的盛宴中回到彼此之间
- 一棵树一个世界,这本书解密树木 “朋友圈” 的生存智慧
- 德国考虑禁止16岁以下人群使用社交媒体
- “双节”酒水观察:线下节庆红利退潮,酒商扎堆直播间拼“底价”,名酒也要靠补贴冲销量
- 华尔街“备战”非农超级周!问题是:非农真能按时公布吗?
- 基于中微爱芯AiP8F7232 MCU的电链锯控制器解决方案
- 如何分析负载特性来调整报警阈值?
- PHP 闲鱼爬虫漫游指南
- 配电柜二级浪涌保护器的安装选型与行业应用方案