IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 4.2 手机模拟操作初步尝试(获取登录页面的源代码) -> 正文阅读

[移动开发]4.2 手机模拟操作初步尝试(获取登录页面的源代码)

  • 本节先来初步尝试手机模拟操作,为之后爬取微信朋友圈的实战演练做铺垫。

4.2.1 用Android Studio 连接夜神模拟器

  • 要操控手机App,得先连接到手机。前面安装的夜神模拟器就是用来模拟Android系统手机的,因此,先打开夜神模拟器,然后在如右图所示的搜索栏中搜索微信,并进行安装。
    在这里插入图片描述

1.打开手机的开发者模式

  • 对于Android 系统手机,还需要打开其开发者模式,之后才能进行模拟操作。单击设置–关于手机–连续单击“版本号”5次–,会使手机进行开发者模式。同时记住显示的版本号,4.2.2节中编写代码时会用到。

2.连接夜神模拟器

  • 在命令行中输入并执行命令“adb connect 127.0.0.1:62001”,如果显示“connected to 127.0.0.1:62001”,便表示连接成功,如下图所示。如果第一次连接失败,可重复输入上述命令进行连接。如果一直连接失败,则注意检查4.1节的各软件是否安装正确。
    在这里插入图片描述

在这里插入图片描述

  • “adb connect 127.0.0.1:62001”中的adb 是 Android Studio中用来调试Android App 的应用程序,全称为Android Debug Bridge(Android 系统调试桥)。因为在4.1.4节配置好了Android Studio 的环境变量,所以在这里能直接调用adb。connect是“连接”的意思。
  • 127.0.0.1:62001指要连接的夜神模拟器的地址,127.0.0.1是本机地址,62001是夜神模拟器的默认端口。如果打开了多个夜神模拟器,那么新打开的夜神模拟器的端口便不是62001。4.5 节会讲解如何多开夜神模拟器,并查看不同模拟器的端口。

3. 验证是否连接成功

  • 在命令行窗口中输入并执行命令“adb devices”,如果显示“List of devices attached”(连接的设备列表)及相关地址,则表示连接成功,如下图所示。

在这里插入图片描述

4.用adb查看App信息

  • adb的操作有很多,不过在手机App爬虫中,我们只需要了解如何用它查看手机App信息(主要是包名和活动名)。在夜神模拟器中打开微信,单击“登录”按钮进入登录页面,建议先手动登录一遍,体验一下在计算机模拟App操作的效果,之后再次登录,进入微信就会看到如下图所示的页面。

  • 然后在之前的命令行窗口中输入并执行命令

  • dumpsys | grep mFocusedActivity”,按enter键,结果如下图所示。
    在这里插入图片描述

  • 在命令的执行结果中,‘u0’后的“com.tencent.mm”是微信App的包名(对应之后要讲的Appium中的appPackage);“/”号后的“.plugin.account.ui.LoginPasswordUI”则是对应的活动名(对应之后要讲的Appium中的appActivity,注意不要遗漏开头的“.”号),即登录页面,一个App中不同页面(如登录页、找回密码页等)的活动名也会不同。

4.2.2 用Python连接微信App

  • 获得了包名和活动名之后,注意不要关闭命令行窗口,因为需要通过tab保持Android Studio和夜神模拟器的连接。然后开始进行用Python连接手机App的操作。
  • 打开Appium,然后单击界面右上角的开始按钮启动服务,可以看到该Appium的地址为127.0.0.1(本机地址),对应的端口为4723,如下图所示。后续会用到这两个参数。
    在这里插入图片描述
  • 然后就可以通过如下Python代码连接夜神模拟器了,连接成功的同时,会在夜神模拟器中自动安装一个名为Appium-Settings的App。
from appium import webdriver #从Appium库导入webdriver功能

desires_caps = {
    'newCommandTimeout':3600, # 设置3600秒无操作则退出Appium
    'platformName':'Android', # Android 平台
    'deviceName':'127.0.0.1:62001', # 模拟器设备名,默认端口62001
    'platformVersion':'2.0.0', # 平台版本号,4.2.1节已获取
    'udid':'127.0.0.1:62001', #设备id,和设备名相同
    'appPackage':'com.tencent.mm', # 包名,4.2.1节已获取
    'appActivity':'.plugin.account.ui.LoginPasswordUI' # 活动名,4.2.1 节已获取
}

browser = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desires_caps) #连接手机,并打开微信

在这里插入图片描述

  • 为了避免下面获取的是夜神首页的源代码而不是登录页面的源代码,我在jup运行网上述代码后,手动点击“微信”,进入微信登录页面后,在运行获取源代码的代码。
  • 接着通过如下代码获取登录页面的源代码:
data = browser.page_source
data
  • 运行上面代码时需要保持打开登录页面。如果遇到闪退,可以用time库的sleep()函数等待一段时间,手动打开登录页面,或者在jup中分区块运行代码。
  • 打印输出的部分内容如下图所示,可以看到其中有“用短信验证码登录”和“登录”等字样,说明成功地获取了微信App登录页面的源代码。
    在这里插入图片描述
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:39:14  更:2022-05-15 11:39:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:54:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码