闲鱼自动化终极实战:用Appium让自动签到、擦亮宝贝与数据统计一次跑通
【免费下载链接】xianyu_automatize[iewoai]主要用于实现闲鱼真机自动化(包括自动签到、自动擦亮、统计宝贝数据)项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_automatize
深夜十一点,你又一次在闲鱼上重复着三件事:签到、擦亮、翻数据。如果这场景熟悉到扎心,那么xianyu_automatize这个开源项目就是为你准备的——它用 Appium 驱动安卓真机,把闲鱼自动化落到三个脚本上:自动签到、自动擦亮、宝贝数据统计,把每晚这二十分钟彻底还给你。
你的睡前二十分钟,正在被闲鱼悄悄偷走
先别急着往下滑,问自己一个问题:昨天那款被反复询问的宝贝,今天浏览涨了还是跌了?你答得上来吗?
大概率答不上来。因为大多数人做闲鱼是这样的:晚上忙完自己的事,打开 App,进"我的"签到领闲鱼币,再切到"我发布的"逐条检查有没有漏擦亮的宝贝,偶尔心血来潮,点开几个详情页记一记数据。一套下来二十分钟起步,而且明天、后天,还要原样再来一遍。
手动操作真正昂贵的不是那二十分钟,而是它的不可持续性:
- 忙起来忘了签到,闲鱼币白白流失,看着心疼
- 擦亮断档一两天,商品曝光和浏览肉眼可见地下滑
- 想复盘"哪款宝贝值得补货",翻遍聊天记录也凑不出一张趋势表
一件重复三次就让人厌烦的事,乘以三十天、再乘以你手头的两三个账号,就成了每天必须咽下的苦差事。而机会成本更隐蔽:你省下来的时间,本可以用在拍图、写描述、回复买家这些真正带来成交的动作上。
三件小事,为什么值得写个程序?
因为重复的、有规律的、可验证的操作,正是自动化最擅长的事。签到、擦亮、统计,三件事都满足这三个特征——它们不需要创造力,只需要"按固定流程执行 + 根据页面状态做判断"。
xianyu_automatize 就是沿着这个思路诞生的:它不是一个庞大的框架,而是几个聚焦的 Python 脚本。你把它下载到电脑上,用数据线连上一台安卓真机,启动 Appium 服务,剩下的动作脚本自己完成。你不用 root、不用改包、不用逆向,它走的是一条最朴素也最稳妥的路——模拟人的手指在真机上操作。
仓库里的文件各司其职,一眼就能看懂分工:
| 文件 | 职责 |
|---|---|
xianyu.py | 自动签到 + 自动擦亮,连接真机运行的主脚本 |
xianyuData.py | 统计宝贝数据,生成 Excel 报表 |
appiumTest1.py | 早期用模拟器尝试自动化的测试文件,已证实此路不通 |
sort_list.p | 按顺序存放每一个宝贝名称,保证报表顺序稳定 |
xianyuData.p | 存放当次统计到的宝贝数据,pickle 序列化格式 |
值得一提的细节:作者把失败经历也留在了仓库里。appiumTest1.py就是那次"模拟器尝试"的现场,注释里写明了三种方案的来龙去脉。这种坦诚,对后来者反而是最宝贵的经验。
闲鱼自动签到:多一步判断,少一次白跑
问题:签到入口藏在"我的"页面深处,每天手动点进去,快的十几秒,慢的半分钟。更烦的是,你根本记不清今天签没签过。
功能:xianyu.py启动后先切到"我的"标签,用 XPath 探测页面上是否存在"签到"入口。有,说明今天还没签,就点进去按"马上签到",如果弹出"收下礼包"一并收掉;没有,说明已经签过了,直接跳过,绝不重复操作。
if is_element_exist(quqiandao_xpath): driver.find_element_by_xpath(quqiandao_xpath).click() wait(qiandao_xpath) driver.find_element_by_xpath(qiandao_xpath).click() print('签到成功————————')效果:这段判断逻辑保证了幂等性——脚本你重复跑一百次,也不会重复领、不会领错。哪怕某天运行到一半断网,第二天重跑一次,它依然知道该从哪里继续。
闲鱼自动擦亮:五分钟一个,慢工出细活
问题:擦亮没有"一键全选"的快捷方式,得一条条手动处理。而且闲鱼对操作频率很敏感,短时间内疯狂点击,轻则被限流,重则触发风控。
功能:脚本先扫描页面上所有带"擦亮"标识的宝贝,逐个点击处理;如果弹出消耗闲鱼币的确认框,就自动点"确认";每擦亮一个,强制休眠五分钟再继续,避开频率检测。擦完当前屏幕后,自动向上滑动翻页,直到滑到底部坐标不再变化为止。
效果:慢,恰恰是它的设计智慧。你看源码里的注释会发现,作者为这五分钟的间隔专门补了两个细节:一是长时间休眠后屏幕会灰屏,所以在休眠结束时会主动点击屏幕唤醒;二是唤醒点击的坐标特意选在页面顶部的无效区域("我发布的"标题附近),而不是随便点屏幕中央——宁可让这次点击"白点",也不能误触到任何功能按钮。
这种"宁可慢一点,也要稳一点"的思路,正是自动化脚本和玩具 Demo 的分水岭。
闲鱼宝贝数据统计:让每款商品的表现开口说话
问题:想知道哪款宝贝最近被浏览得多、哪款"想要"在涨,手动翻详情页一条条记,记完就乱,下周再看又对不上号。
功能:xianyuData.py会逐个进入每个宝贝的详情页,向下滑动找到"担保交易"信息区,用正则表达式抓出三组关键数字:
want = re.findall(r'(\d+)人', info) # 想要人数 like = re.findall(r'超赞(\d+)', info) # 超赞数量 look = re.findall(r'浏览(\d+)', info) # 浏览量所有数据汇总后写入两个数据文件,再生成一份以当天日期命名的 Excel 报表,比如2026-08-19.xlsx。
效果:sort_list.p保证了宝贝在报表里的顺序永远稳定,新出现的宝贝自动追加到末尾,下架的宝贝补零占位。你只要把每天的报表叠在一起,就能看到每款商品的浏览、想要、超赞三条曲线——哪些款在起势、哪些款在衰退,一目了然。选品和定价,第一次有了数据支撑,而不是凭感觉。
实战演练:从零把闲鱼自动化跑起来
前面讲了这么多,不如亲手跑一遍。整个过程按"准备 → 操作 → 验证 → 进阶"四步走,半小时内能见效果。
第一步:备齐三样东西
- 一台安卓真机:开启开发者选项、打开 USB 调试,用数据线连接电脑。注意一定要是真机,原因后面避坑部分细说。
- Appium 服务:启动后在本地 4723 端口监听,脚本通过
http://localhost:4723/wd/hub与设备通信。 - Python 环境:安装项目依赖:
pip install appium-python-client selenium pandas openpyxl第二步:改对设备参数
打开xianyu.py,把desired_caps里的设备信息换成你自己的:
desired_caps = { "deviceName": "你的设备型号", "platformName": "Android", "platformVersion": "你的安卓版本", "appPackage": "com.taobao.idlefish", "appActivity": "com.taobao.fleamarket.home.activity.MainActivity", "noReset": True, # 不重置应用状态,保住登录态 "newCommandTimeout": 900 # 防止长时间运行被过早判定超时 }两个容易忽略的细节:noReset设为 True,脚本就不会清掉你的登录状态,不用每次重登;newCommandTimeout默认值很短,擦亮任务动辄要跑几十分钟,不调大会中途被踢出。
第三步:一键开跑
python xianyu.py终端会逐行打印执行日志:打开 App 成功、切换到"我的"、是否签到、正在擦亮第几个宝贝、滑动前后的坐标对比……你全程只需要看着它干活,或者干脆去做别的事。
第四步:交给定时任务,实现无人值守
脚本本身不依赖人,就差一个"到点自动启动"。Linux 下用 cron,Windows 下用任务计划程序,把上面这条命令安排到每天固定时间执行即可。从此每天早上你醒来时,签到、擦亮、统计都已经做完了。
避坑指南:作者踩过的坑,你别再踩一遍
这个项目最有价值的,其实藏在那些"失败注释"里。以下坑我帮你提前排掉。
⚠️ 模拟器这条路,真的走不通
appiumTest1.py就是活生生的教训:项目最初尝试用 uu 模拟器(地址127.0.0.1:7555)跑自动化,结果发现模拟器根本登不上阿里系应用。作者后来又试了 fiddler 抓包绕过,同样以失败告终——抓包会导致模拟器里的第三方应用闪退。别在模拟器上浪费一整天,直接上真机。
屏幕灰屏:睡着容易,醒过来难
擦亮间隔五分钟,屏幕很容易进入休眠。长按唤醒后 UI 状态可能错乱,后续点击全废。解决办法源码里写得很清楚:休眠结束后主动tap一下屏幕唤醒,坐标选在页面顶端的无效区域,避免误触。如果你要自己改这个逻辑,记住一个原则——唤醒动作要存在,但位置要"无伤大雅"。
擦亮定位错乱:永远点第一个
作者在注释里记录过一个诡异 bug:页面有多个可擦亮宝贝时,偶尔会把"浏览"误判成"擦亮"。解法朴素但有效——每次都点擦亮列表中的第一个,擦掉一个刷新一次列表,从根上避开定位漂移。
详情页点击异常:上滑 100 像素重试
统计数据时,点进宝贝详情偶尔会撞上弹窗、降价提示之类的东西,导致点击落空。xianyuData.py里的处理方式是:捕获NoSuchElementException后,先向上滑动 100 像素避开遮挡层,再重新点击。这种"重试 + 微调"的组合拳,比硬编码等待靠谱得多。
连接莫名断开:先查超时时间
如果你遇到"脚本跑到一半,Appium 报 session 超时",先检查newCommandTimeout是不是太小。默认值对于签到这种秒级操作够用,但擦亮一个宝贝要等五分钟,不调大必挂。作者把它设到 600~900 秒,是有充分理由的。
把重复交给脚本,把时间留给成交
回到开头那个问题:那款被反复询问的宝贝,浏览是涨是跌?现在你有了答案——跑一次xianyuData.py,报表会告诉你;而签到和擦亮,也早就不需要你亲手去点了。
这就是这个项目最打动人的地方:它没有发明什么高深的技术,只是把"每晚二十分钟的重复劳动"变成了"每天一条命令"。你的手机还是那台手机,账号还是那个账号,但你的时间回来了。
当然,它还有很大的成长空间。比如基于历史数据给出智能定价建议、监控同类竞品的价格波动、自动回复高频买家咨询……这些方向作者都在考虑。如果你有想法,欢迎直接参与进来:发现问题就去提 issue,有改进思路就提交代码,哪怕只是把使用心得写下来分享给社区,都是这个项目前进的动力。
下一步很简单:克隆仓库,连上真机,跑通第一个脚本。今晚那二十分钟,就当是给未来的自己放个假。
git clone https://gitcode.com/gh_mirrors/xia/xianyu_automatize cd xianyu_automatize python xianyu.py当你第一次看到终端里跳出"签到成功""全部擦亮完毕"的时候,你会明白:这不仅仅是一个脚本,而是你从"被重复劳动支配"到"支配工具"的分界线。🚀
【免费下载链接】xianyu_automatize[iewoai]主要用于实现闲鱼真机自动化(包括自动签到、自动擦亮、统计宝贝数据)项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_automatize
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考