阅读文本大概需要 10 分钟。
1
目 标 场 景
经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带来不错的睡后收入。
闲鱼上大量的商品,很难精准判断哪些受欢迎,哪些好卖;一个个录入数据去做数据分析,浪费时间的同时,效率也极其的低效。
本篇文章的目的是利用Python 自动化来获取某类商品中最好卖的商品以供参考。
ps:本文仅限用于技术交流,请勿用于其他用途。
2
准 备 工 作
在编写代码之前,需要做如下准备工作:
1、配置好 Android ADB 开发环境
2、Python 虚拟环境内安装 pocoui 依赖库
3、安装数据可视化依赖库pyecharts
3
编 写 代 码
我们分7个步骤来实现这个功能,分别是:打开目标应用客户端、检索关键字到商品列表界面、计算最佳滑动距离、筛选商品、获取商品链接地址、写入文件排序并统计商品、配置参数。
第1步,使用 pocoui 自动化打开目标应用。
进入到闲鱼首页之后,应用端会拿到剪切板的数据,当存在特定规律的口令的时,会立马弹出一个对话框,因此需要模拟关闭对话框的操作。
打开应用之后,就可以进行第2步操作了。
通过要检索的关键字,模拟输入到输入框内,然后点击搜索按钮,一直等待搜过列表出现为止。
另外,为了更加方便地处理数据,商品列表切换到列表模式,即一行只显示一个商品。
第3步,计算最佳滑动距离。
为了保证爬取数据的高效性,获取计算出每次滑动的最佳距离。
首先先拿到当前界面的 UI 控件树,然后通过控件的属性 ID 拿到商品的坐标,进而得到每一项商品的高度。
最后,通过观察屏幕中出现商品的数目得到最佳滑动距离。
第4步,筛选商品。
上面的步骤拿到最佳的滑动距离,不停的滑动页面遍历列表元素的子 Item。
需要注意的是,为了避免滑动惯性导致的误差,每一次的滑动时长最好设置为 2s 以上。
通过商品 Item 筛选出想要数目大于预设数字的商品。
第5步,获取商品链接地址。
对于上一步满足条件的商品,点击商品 Item 进入到商品详情页面。
然后点击口令控件,会提示口令复制到系统剪切板成功。
第6步,写入商品、排序并统计数据。
将上面获取到的商品标题、想要数、分享地址写入到 CSV 文件中。
然后读取数据文件,通过对表格中的第二列进行反向排序,使商品按照想要数进行降序排列。
最后拿到前 10 项数据,利用pyecharts生成统计图表。
第7步,配置参数。
编写 yaml 文件,指定要爬取商品的关键字、爬取时间、想要数考核指标数、筛选商品数目。
4
结 果 结 论
提前配置好商品关键字、爬取时间等参数,即可以爬取到符合要求的、最好卖的商品数据,最终以图表的方式展示出来。
领取专属 10元无门槛券
私享最新 技术干货