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把闲鱼变成了“躺赚”的副业提款机。
审核编辑 黄宇
- 一周跌去7% 黄金“避险光环”缘何失色?
- 28股获推荐 立讯精密等目标价涨幅超40%|券商评级观察
- 超六成收入集中在去年12月确认 实达集团业绩预告引监管追问
- 子公司拖延10年缴税2531万元 嘉事堂更正8年财报
- 主力复盘:27.20亿流入兆易创新 33.77亿出逃中国电建
- 董承非最新发声!今年市场会很“混沌” 还谈到了地产股
- “日光基”频现!规模首破3000亿元!这类基金受追捧
- 3月回购公告大揭秘!百亿元基金经理一季度在这些赛道“疯狂扫货”
- 沪指震荡整理 风电设备与煤炭开采板块大涨
- 重庆啤酒发年报:频繁上新营收持平,净利润大增“靠”官司?
- 苹果首款折叠屏手机将至 产业链个股闻风而动
- 盘中暴力拉升!利好突袭芯片!
- AI圈顶流!“养龙虾”火出圈 算力概念或迎新一轮催化(附股)
- 吴清发声长钱长投、公募姓公 基金公司最新解读
- 吴清问答十要点:谈创业板改革、中国资产吸引力
- 业绩亏损,高管辞职!光伏铝边框龙头终止60万吨再生铝项目,1.24亿元募资永久补流