python爬虫之Appium手机APP爬虫

python爬虫之Appium手机APP爬虫

2023年6月29日发(作者:)

python爬⾍之Appium⼿机APP爬⾍

Appium的功能其实很简单:监听⼀个端⼝,然后接收由client发送来的command,翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执⾏完这些command后把执⾏结果返回给appium server,appium server再把执⾏结果返回给client。在这⾥client其实就是发起command的设备,⼀般来说就是我们代码执⾏的机器,执⾏appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。⼆、Appium环境搭建1、需要⽤到的软件包如下:(1)(2)Java SDK(3)Android SDK(4)Appium Windows(5)夜神模拟器(6)Python(7)Appium-python-Client(2)安装好后,执⾏npm install -g appium-doctor(npm是的包管理⼯具,下载appium-doctor可以检测Appium的环境搭建是否成功)(3)执⾏appium-doctor检测Appium的环境搭建情况

上图打对勾的地⽅即是要坚持的环境变量配置情况,只有全部打对勾,才说明环境搭配成功3、Java SDK4、Android SDK5、Appium Windows(2)安装Appium Windows6、夜神模拟器(2)安装7、Python与Appium-Python-Client的安装就不讲了8、使⽤appium-doctor检测环境是否安装成功,同第2步9、测试是否能正常启动根据appium的⼯作原理:(1)测试client与appium是否能通信成功

当运⾏代码时,Appium就会响应,虽然是404,但只是因为Appium没有找到执⾏命令的设备(2)测试appium与模拟器是否能通信成功

不管遇见什么样的错误,只要把Origin error:后⾯的报错信息复制到百度上找寻解决办法基本都能找到,这⾥表⽰不能找到连接了的安卓设备,所以我们先要连接安装设备,在命令⾏中:检测是否有连接的设备,下⾯表⽰没有连接的设备

连接已经打开的安卓设备,连接成功

再检测⼀下,发现有了

接下来就可以点击Start session,将Appium连接上安卓设备,连接成功与设备同步

现在我们使⽤代码驱动Appium,Appium再将命令转给安卓设备,模拟器打开,说明成功了,可以正式开始抓取APP的数据了

现在可以解释⼀下platformName、platformVersion、deviceName、appPackage、appActivity、noReset这⼏个参数的来历了platformName(系统名称):Android、IOS、Windows、LinuxplaformVersion(系统版本)deviceName(设备名称,即设备运⾏的地址,默认为127.0.0.1:62001)appPackage(要打开哪个软件)、appActivity(要打开的软件的活动页⾯)appPackage、appActivity两个参数可以通过点开模拟器上想要打开的软件,然后通过命令⾏获取

10、⽤法基本与selenium类似,下附简单的代码(定位时,能使⽤id,尽量不使⽤xpath)#!/usr/bin/env python# coding: utf-8# In[63]:from appium import webdriver# In[64]:from time import sleep# In[65]:from t import expected_conditions as ECfrom import WebDriverWait# In[66]:from import By# In[67]:desired_caps = { "platformName": "Android", "platformVersion": "5.1.1", "deviceName": "127.0.0.1:62001", "appPackage": "", "appActivity": ".Activity", "noReset": "False" # 清除缓存}# In[68]:driver = ("127.0.0.1:4723/wd/hub", desired_caps)# In[69]:# 获取⼿机屏幕长宽screenWidth = _window_size()["width"]screenHeight = _window_size()["height"]# In[70]:# beijing_xpath = "/hierarchy/ayout/Layout/ayout/Layout/ayout/veLayout/ger/andro# WebDriverWait(driver, 10).until(t_to_be_clickable((, beijing_xpath))).click()# In[72]:hotCityId = ":id/fl_hot"hotCity = WebDriverWait(driver, 10).until(ce_of_element_located((, ":id/fl_hot")))# In[73]:_element_by_xpath("//Layout[1]").click()# In[74]:# _element_by_id(":id/launch_op_bt_ok").click()WebDriverWait(driver, 10).until(t_to_be_clickable((, ":id/launch_op_bt_ok"))).click()# In[75]:ershoufang_xpath = "/hierarchy/ayout/Layout/ayout/Layout/ayout/ayout/ayout/DriverWait(driver, 10).until(t_to_be_clickable((, ershoufang_xpath))).click()# In[76]:ershoufang_xpath = "/hierarchy/ayout/Layout/ayout//ger/ayout/veLayout[1]/riverWait(driver, 10).until(t_to_be_clickable((, ershoufang_xpath))).click()# In[78]:items_id = ":id/recyclerView"items = _element_by_id(items_id)while 1: (screenWidth*0.5, screenHeight*0.85, screenWidth*0.5, screenHeight*0.25, 500) ls = _elements_by_xpath("//Layout") sleep(3)# In[ ]:

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687984695a63802.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信