• app小程序手机端Python爬虫实战11实现自动化登录考研帮app并滑动资讯信息


    作者:虚坏叔叔
    博客:https://xuhss.com

    早餐店不会开到晚上,想吃的人早就来了!😄

    实现自动化登录考研帮app并滑动资讯信息

    在这里插入图片描述

    一、最终的实现

    在这里插入图片描述

    二、清楚数据

    首先需要清除软件数据,这样广告才会出来

    其他设置=》应用程序管理=》已安装=》找到考研帮=》清除数据
    
    • 1

    在这里插入图片描述

    三、设置模拟器的输入法为uiautomator输入法

    为了能够正确的将文本输入进去 需要使用uiautomator2提供的输入法

    设置=》其他设置=》语言和输入法->默认=》选择FastInputIME
    
    • 1

    在这里插入图片描述

    这样输入法的对话框就不会弹出来了。

    四、整体流程

    1. 设备接通
    2. 启动app
    3. 判断是打开了登录页面
    4. 输入用户名密码并点击登录
    5. 判断是否进入app首页,也就是当前页面是否有“社区”按钮,点击社区按钮,滑动社区页面
    6. 当屏幕出现“没有更多了”这个提示,就停止移动

    五、完整代码

    代码:

    import uiautomator2 as u2
    import time
    
    
    import uiautomator2 as u2
    
    
    class HandleKaoyanbang(object):
        def __init__(self, serial="127.0.0.1:62001"):
            # 当前是通过usb的方法来街道移动设备的
            self.d = u2.connect_usb(serial=serial)
            self.size = self.get_windowsize()
            self.handle_watcher()
    
        def handle_watcher(self):
            """定义一个监控器:会单独启动一个线程来监控有没有符合要求的控件"""
            # 用户隐私协议
            self.d.watcher.when('//*[@resource-id="com.tal.kaoyan:id/tip_commit"]').click()
            # 广告
            self.d.watcher.when('//*[@resource-id="com.tal.kaoyan:id/tv_skip"]').click()
            # 监控器写好之后 通过start方法启动
            self.d.watcher.start()
    
        def get_windowsize(self):
            """获取手机屏幕的大小"""
            return self.d.window_size()
    
        def handle_kaoyanbang_app(self):
            """启动考研帮app,并实现自动化操作"""
            self.d.app_start(package_name="com.tal.kaoyan")
    
            # 点击密码登录
            self.d(text="密码登录").click_exists(timeout=10)
    
            # 输入用户名(文本控件-用set_text输入文字)
            self.d(resourceId="com.tal.kaoyan:id/login_email_edittext").set_text("12121212")
            # 输入password
            self.d(resourceId="com.tal.kaoyan:id/login_password_edittext").set_text("1121212")
    
            # 点击登录
            self.d(resourceId="com.tal.kaoyan:id/login_login_btn").click()
    
            # 等待页面出现(在10秒内,如果这个页面出现了,我们就进入下一步操作,
            if (self.d.wait_activity("com.tal.kaoyan.ui.activity.HomeTabActivity", timeout=10)):
                # 点击社区
                self.d(text="社区").click_exists(timeout=10)
    
            # 获取到屏幕的坐标
            x1 = int(self.size[0] * 0.5)
            y1 = int(self.size[1] * 0.9)
            y2 = int(self.size[1] * 0.15)
    
            while True:
                self.d.swipe(x1, y1, x1, y2)
    
    
    if __name__ == '__main__':
        k = HandleKaoyanbang()
        k.handle_kaoyanbang_app()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    六、总结

    • 本文介绍了Uiautomator2自动化抓取工具。
    • 如果觉得文章对你有用处,记得 点赞 收藏 转发 一波哦,博主也支持为铁粉丝制作专属动态壁纸哦~

    💬 往期优质文章分享

    🚀 优质教程分享 🚀

    • 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
    • 🎄比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
    • 🎄可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
    学习路线指引(点击解锁)知识定位人群定位
    🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
    💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
    ❤️ Python&C++混合编程❤️难度偏高分享学习Python C++混合编程知识!

    🚀 资料白嫖,温馨提示 🚀

    关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!

    请添加图片描述

  • 相关阅读:
    shell快速启动tomcat集群
    数字逻辑·逻辑代数【常用公式、化简】
    ElasticSearch - ​开启搜索的新境界
    集美大学 - 2840 - 实验2-1
    RabbitMQ-发布订阅模式和路由模式
    动态规划求股票买入、卖出最大收益 java 实现( 最多可进行 1 次 “买入 ==> 卖出“ 操作 )
    LVS DR模式负载均衡群集部署
    radiobutton的使用
    【精讲】vue2框架 路由的使用及案例精讲
    ASEMI快恢复二极管ES5JB参数,ES5JB特性,ES5JB机械数据
  • 原文地址:https://blog.csdn.net/huangbangqing12/article/details/126148018