免费建网站的平台网站赏析
web/
2025/10/7 19:33:30/
文章来源:
免费建网站的平台,网站赏析,wap网站如何制作,苏州建网站的公司招前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者#xff1a;【Airpython】PS#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun准 备 工 作在编写代码…前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者【Airpython】PS如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun准 备 工 作在编写代码之前需要做如下准备工作1、配置好 Android ADB 开发环境2、Python 虚拟环境内安装 pocoui 依赖库3、安装数据可视化依赖库 pyecharts# pocouipip3 install pocoui# 数据可视化图表pip3 install pyecharts -U编 写 代 码我们分 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()breaktime.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 拿到商品的坐标进而得到每一项商品的高度。最后通过观察屏幕中出现商品的数目得到最佳滑动距离。def __get_good_swipe_distance(self):获取每次滑动最合适的距离:return:element Element()# 保存当前的UI树到本地element.get_current_ui_tree()# 第一个商品Item的坐标position_item element.find_elment_position_by_id_and_index(com.taobao.idlefish:id/card_root,1)# 商品的高度item_height position_item[1][1] - position_item[0][1]# 通过观察当前屏幕有3件商品return item_height * 3第 4 步筛选商品。上面的步骤拿到最佳的滑动距离不停的滑动页面遍历列表元素的子 Item。需要注意的是为了避免滑动惯性导致的误差每一次的滑动时长最好设置为 2s 以上。通过商品 Item 筛选出想要数目大于预设数字的商品。# 多少人想要want_element_parent item.offspring(com.taobao.idlefish:id/search_item_flowlayout)if want_element_parent.exists():# 想要数/已付款数目want_element want_element_parent.children()[0]want_content want_element.get_text()# 过滤掉【已付款】等其他商品只保留个人发布商品if 人想要 not in want_content:continue# 拿到商品想要的具体数目代表商品热度want_num get_num(want_content)if int(want_num) self.num_assign:# print(不达标过滤掉)passelse:# 商品想要数达标加入统计第 5 步获取商品链接地址。对于上一步满足条件的商品点击商品 Item 进入到商品详情页面。接着点击右上角的分享按钮会立即弹出分享对话框。然后点击口令控件会提示口令复制到系统剪切板成功。# 点击更多while True:if self.poco(com.taobao.idlefish:id/ftShareName).exists():breakprint(点击更多~)perform_click(self.poco(text更多))# 点击复制淘口令perform_click(self.poco(com.taobao.idlefish:id/ftShareName, text淘口令))# 拿到口令码taobao_code_element self.poco(com.taobao.idlefish:id/tvWarnDetail)taobao_code taobao_code_element.get_text()第 6 步写入商品、排序并统计数据。将上面获取到的商品标题、想要数、分享地址写入到 CSV 文件中。然后读取数据文件通过对表格中的第二列进行反向排序使商品按照想要数进行降序排列。def __sort_result(self):对爬取的结果进行排序:return:reader csv.reader(open(self.file_path), delimiter,)# 头部标题head_title next(reader)# 按照第二列进行逆序排列sortedlist sorted(reader, keylambda x: (int(x[1])), reverseTrue)# 写入头部数据write_to_csv(self.file_path, [(head_title[0], head_title[1], head_title[2])], False)for value in sortedlist:write_to_csv(self.file_path, [(value[0], value[1], value[2])], False)return sortedlist最后拿到前 10 项数据利用 pyecharts 生成统计图表。def draw_image(self, sortedlist):画图:param sortedlist::return:# 标题列表titles []# 销量sales_num []# 拿到爬取结果的标题、销量两个列表with open(self.file_path, r) as csvfile:# 读取文件reader csv.DictReader(csvfile)# 加入列表中for row in reader:titles.append(row[title])sales_num.append(row[num])# 数目限制if len(titles) self.num:titles titles[:self.num]sales_num sales_num[:self.num]# 画图bar (Bar().add_xaxis(titles).add_yaxis(哪些好卖, sales_num).set_global_opts(title_optsopts.TitleOpts(title我要卖货)))bar.render(%s.html % self.good_msg)第 7 步配置参数。编写 yaml 文件指定要爬取商品的关键字、爬取时间、想要数考核指标数、筛选商品数目。goods:# 搜索商品1包含搜索关键字、爬取时间good1:key_word: 资料 # 搜索关键字key_num: 100 # 筛选【想要数】的临界点num: 10 # 只筛选爆款time: 600 # 爬取时间(秒)结 果 结 论提前配置好商品关键字、爬取时间等参数即可以爬取到符合要求的、最好卖的商品数据最终以图表的方式展示出来。..如果想了解更多关于python的应用可以私信小编原文链接:https://www.cnblogs.com/python0921/p/12587939.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88651.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!