| 副标题[/!--empirenews.page--] 1.目标场景 经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带来不错的 睡后收入。 
 闲鱼上大量的商品,很难精准判断哪些受欢迎,哪些好卖;一个个录入数据去做数据分析,浪费时间的同时,效率也极其的低效。 本篇文章的目的是利用 Python 自动化 来获取某类商品中很好卖的商品以供参考。 ps:本文仅限用于技术交流,请勿用于其他用途。 2.准备工作 在编写代码之前,需要做如下准备工作: 1、配置好 Android ADB 开发环境 2、Python 虚拟环境内安装 pocoui 依赖库 3、安装数据可视化依赖库 pyecharts # pocoui pip3 install pocoui  # 数据可视化图表 pip3 install pyecharts -U 
 3.编写代码 我们分 7  个步骤来实现这个功能,分别是:打开目标应用客户端、检索关键字到商品列表界面、计算优秀滑动距离、筛选商品、获取商品链接地址、写入文件排序并统计商品、配置参数。 第 1 步,使用 pocoui 自动化打开目标应用。 def __pre(self):     """     准备工作     :return:     """     home()     stop_app(package_name)     start_my_app(package_name, activity)       # 等待到达桌面     self.poco(text='闲鱼').wait_for_appearance()     self.poco(text='鱼塘').wait_for_appearance()     self.poco(text='消息').wait_for_appearance()     self.poco(text='我的').wait_for_appearance()      print('进入闲鱼主界面') 
 进入到闲鱼首页之后,应用端会拿到剪切板的数据,当存在特定规律的口令的时,会立马弹出一个对话框,因此需要模拟关闭对话框的操作。 # 如果指定时间内内有淘口令,就关闭 for i in range(10, -1, -1):       close_element = self.poco('com.taobao.idlefish:id/ivClose')       if close_element.exists():             close_element.click()             break       time.sleep(1) 
 打开应用之后,就可以进行第 2 步操作了。 通过要检索的关键字,模拟输入到输入框内,然后点击搜索按钮,一直等待搜过列表出现为止。 
 另外,为了更加方便地处理数据,商品列表切换到列表模式,即一行只显示一个商品。 def __input_key_word(self):     """     输入关键字     :return:     """     # 进入搜索界面     perform_click(self.poco('com.taobao.idlefish:id/bar_tx'))      # 搜索框内输入文本     self.poco('com.taobao.idlefish:id/search_term').set_text(self.good_msg)      # 点击搜索按钮     while True:          # 等待检索结果列表出现          if not self.poco('com.taobao.idlefish:id/list_recyclerview').exists():               perform_click(self.poco('com.taobao.idlefish:id/search_button', text='搜索'))          else:               break      # 等待商品列表完全出现     self.poco('com.taobao.idlefish:id/list_recyclerview').wait_for_appearance()      # 切换到列表     perform_click(self.poco('com.taobao.idlefish:id/switch_search')) 
 第 3 步,计算优秀滑动距离。 为了保证爬取数据的高效性,获取计算出每次滑动的优秀距离。 首先先拿到当前界面的 UI 控件树,然后通过控件的属性 ID 拿到商品的坐标,进而得到每一项商品的高度。 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |