千家信息网

「docker实战篇」python的docker爬虫技术-appium+python实战(18)

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:「docker实战篇」python的docker爬虫技术-appium+python实战(18)上次通过appium进行了,录制
千家信息网最后更新 2026年11月03日「docker实战篇」python的docker爬虫技术-appium+python实战(18)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:「docker实战篇」python的docker爬虫技术-appium+python实战(18)

上次通过appium进行了,录制脚本的功能,而且还可以进行转换成python,java,js等等语言的,这次实战下,从登陆,到进入某个页面操作获取信息。
源码:https://github.com/limingios/dockerpython.git

流程代码

1.点击跳过导航页面,进入登录页面
2.输入用户名和密码,点击登录
3.进入页面点击同意,点击研迅
4.模拟手势,上移

  • 准备工作
    1. 安装【考研帮】

2.设置-应用-点击【考研帮】-清除数据

  1. 启动【考研帮】

  1. 启动直接adb中的uiautomatorviewer.bat 记得看看下载源码包里面的增强版

5.看到uiautomatorviewer 和 夜神模拟器

6.appium启动

  • 编写代码

#!/usr/bin/env python

-- coding: utf-8 --

@Time : 2019/1/22 20:15

@Author : Aries

@Site :

@File : yankao.py

@Software: PyCharm

#pip3 install Appium-Python-Client
import time
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
cap = {
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.tal.kaoyan",
"appActivity": "com.tal.kaoyan.ui.activity.SplashActivity",
"noReset": True
}

driver = webdriver.Remote("http://localhost:4723/wd/hub",cap)

def get_size():
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return(x,y)

#导航点击跳过
try:
#是否跳过
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TextView[1]")):
driver.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TextView[1]").click()
except:
pass

try:
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]")):
driver.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]").send_keys("idig8")
driver.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.EditText[2]").send_keys("3989441")
driver.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.Button[1]").click()
except:
pass

#隐私协议
try:
#隐私协议
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_agree']")):driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_agree']").click()
br/>driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_agree']").click()

except:
pass

#点击研讯
if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]")):
driver.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click()

l = get_size()x1 = int(l[0]*0.5)y1 = int(l[1]*0.75)y2 = int(l[1]*0.25)#滑动操作while True:    driver.swipe(x1,y1,x1,y2)    time.sleep(0.5)
注意点:1.xpath 通过uiautomatorviewer 点击查看![](https://upload-images.jianshu.io/upload_images/11223715-a88d201baa566c1b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)2.python在运行过程中如果进行uiautomatorviewer加载会报错3.python在使用的过程中需要先引入    from appium import webdriver    from selenium.webdriver.support.ui import WebDriverWait4.前提是启动的appium:提示:The server is running![](https://upload-images.jianshu.io/upload_images/11223715-b173c522071c521b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)5.里面有几个需要注意的套路:>appium服务的远程调用webdriver.Remote("http://localhost:4723/wd/hub",cap)>判断xpath是否存在if WebDriverWait(driver,3).until(lambda x:x.find_element_by_xpath("'路径")):>输入框复制 driver.find_element_by_xpath("路径").send_keys("填入数据")>按钮点击 driver.find_element_by_xpath("路径").click()>模拟手势上啦,先获取屏幕的宽高,然后通过driver.swipe(x1,y1,x1,y2) 从指定的(x1,y1)坐标到(x2,y2)def get_size():    x = driver.get_window_size()['width']    y = driver.get_window_size()['height']    return(x,y)l = get_size()x1 = int(l[0]*0.5)y1 = int(l[1]*0.75)y2 = int(l[1]*0.25)driver.swipe(x1,y1,x1,y2)PS:最后实现了如何从登陆到点击研迅,模拟手指,拉下加载的功能。
页面 实战 路径 代码 功能 手势 数据 源码 过程 隐私 导航 登录 登陆 输入 技术 爬虫 信息 前提 原创文章 原文 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 广州淘业互联网络科技 互联网的科技 河南真二互联网科技有限公司 青岛互联网科技公司 成都互联网科技公司 融势互联网科技 郑州华宇互联网科技 互联网金融和金融科技 互联网科技股有哪些 崇明区互联网教育科技诚信经营 深圳育鹏互联网科技有限公司招聘 本届互联网博览会上的黑科技 中国互联网公司排名锤子科技 朱啸虎曾投资哪些互联网科技企业 徐州市互联网科技有限公司 山东有哪些互联网科技公司 互联网方面的科技前沿 互联网界的黑科技 互联网大会出现的黑科技 云南咖啡 湖北九亚互联网络科技有限公司 新华互联网科技学院 极限挑战互联网科技 互联网软件和科技 乌鲁木齐新华智原互联网科技学校 昆明中奇联合互联网科技 上海万顺科技互联网有限公司招聘 互联网金融运营模式中的金融科技 求路客互联网科技电话
0