| 
                        副标题[/!--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 拿到商品的坐标,进而得到每一项商品的高度。 
                                                (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |