爬虫--08:移动端数据的抓取

在这里插入图片描述

移动端环境的搭建

以下相关知识包含着安卓app开发,请谨慎使用Android studio。

一、移动端数据的简介

1、移动端爬取数据的背景

  • 随着互联网的发展,数据不仅仅只是存在于PC端。移动端的数据在近几年的占比以及发展趋势呈现几何级增长。对于做数据分析、用户画像、市场调研来说仅仅参考PC端的数据是远远不够的。那么对移动端的数据爬取就显得尤为重要。

2、获取移动端数据的作用

  • 数据分析
  • 用户画像
  • 商业竞争
  • 统计系统

3、UIAutomator的介绍

  • UIAutomator是google提供的用来做安卓自动化测试的一个java库。

4、UIAutomator的缺陷

  • 测试脚本只能用java语言开发
  • 测试脚本要打包成jar包或者apk包上传到设备才能实现

5、UIAutomato2的优势

  • 在PC端来编写脚本(相当于发送HTTP请求到移动设备的server端)。
  • 移动设备通过wifi或usb接收到了PC上发来的HTTP请求,执行定制的操作。
  • 在移动设备上安装atx-agent(守护进程),随后atx-agent启动ui2服务(默认7912端口)进行监听。

6、android四大组件(拓展)

  • Activity:单独的屏幕view(窗口)
    • AActivity之间是通过intent进行通信
  • Service:服务
    • 在后台完成一些操作
  • content procider :内容提供者
    • 下载第三方的app之后,是否可以访问手机内部信息
    • 使一个应用程序指定数据,提供给其他的程序
  • boadcast cereicer:广播
    • 闹钟、手电。。。。。

二、adb的简介与使用

1、adb的三个部分

  • Adb又称Android调试桥,用于通过电脑端与模拟器或者是设备之间的交互的一个工具。
  • adb client 命令行程序‘adb’用于从shell或脚本中运行adb命令。
  • adb server 是运行在PC的的一个后台程序。
  • Adbd 程序adbd作为一个后台进程在Android设备或模拟器系统中运行。

2、adb的作用

  • 安装卸载apk文件
  • 移动设备和PC之间拷贝文件
  • 查看设备上安装的应用信息
  • 文件管理
  • 按键操作

3、adb的使用

  • 将adb的bin目录添加到环境变量当中
    在这里插入图片描述

**注意:**adb是安卓手机或者模拟器自带的,添加到电脑环境变量的bin目录是你的模拟器bin目录。

  • adb命令
    adb devices 查看链接的移动设备
    adb kill-server 关闭链接的移动设备
    adb install apk文件路径 安装app应用
    adb shell pm list packages 查看应用包名
    adb uninstall 应用包名 卸载应用

4、adb的安装

  • 只需要安装一个模拟器,就会在PC端安装好adb工具

    • E:\夜神模拟器\Nox\bin 在这个bin目录当中就有已经安装好的adb

    • 注意:将这个bin目录添加到path环境变量中

  • 配置移动设备

    • 1、安装夜深模拟器
    • 2、打开夜深多开器
    • 3、模拟器打钩
    • 4、调整系统设置(选择手机版、分辨路、显卡渲染模式)
      如果启动模拟器是黑屏则切换成极速模式
    • 5、确定模拟器打开了开发者选项

三、UIAutomator2快速入门

  • python -m uiautomator2 init 初始化移动设备
  • Uiautomator-server: 就是谷歌原声的 uiautomator。
  • Atx-agent: uiautomator的守护进程
  • minicap和minitouch 中2个包是atx-agent增加远程控制功能的依赖

1、UIAutomator2控制移动设备

  • UIAutomator2的连接
    • 通过WiFi :u2.connect_wifi('172.17.100.15')
    • 通过USB:u2.connect_usb('127.0.0.1:62025')
    • 通过adb WiFi:u2.connect_adb_wifi('172.17.100.15:5555')
import uiautomator2 as u2


'''
通过WIFI链接设备 手机的ip地址:172.16.38.15
'''
# USB链接
d = u2.connect_usb('127.0.0.1:62001')
print(d.info)

# WIFI链接
# d = u2.connect_wifi('172.16.38.15')
# print(d.info)

2、UIAutomato2启动手机app

  • 确认设备
adb devices
  • 进行u2项目的初始化
python -m uiautomator2 init
  • 对移动端进行连接
import uiautomator2 as u253
# 发起链接
d = u2.connect_usb('127.0.0.1:62001')
  • 启动app
d.app_start('com.tal.kaoyan')
  • 关闭app
d.app_stop('com.tal.kaoyan')
  • 查看sercvice服务
print(d.service('uiautomator').running())
  • 开启服务
d.service('uiautomator').start()
  • 关闭服务
d.service('uiautomator').stop()
  • 查看分辨率
print(d.window_size())
  • 安装app
# 通过file path
d.app_install(data=r'C:\Users\王佳欣的windows\Desktop\122_a9251ed258de96faefd5f984054f71e4.apk')
# 通过url
d.app_install(data='https://ip2225176868.out.azhimalayanvh.com/fs08/2021/04/20/8/122_a9251ed258de96faefd5f984054f71e4.apk?yingid=wdj_web&fname=%E7%99%BE%E5%BA%A6%E5%9C%B0%E5%9B%BE&productid=2011&pos=wdj_web%2Fdetail_normal_dl%2F0&appid=29805&packageid=601036592&apprd=29805&iconUrl=http%3A%2F%2Fandroid-artworks.25pp.com%2Ffs08%2F2021%2F04%2F22%2F2%2F110_37fd4ff774431c55895056c1b4b1b9b7_con.png&pkg=com.baidu.BaiduMap&did=a930de903f16cd1ba8ac8c0693b8de58&vcode=1055&md5=2f82f8a88d48577264018df8937b1f24&ali_redirect_domain=alissl.ucdl.pp.uc.cn&ali_redirect_ex_ftag=1e920e722d7c06b691fdd153e1f3eef86bf74fa18128f423&ali_redirect_ex_tmining_ts=1619084061&ali_redirect_ex_tmining_expire=3600&ali_redirect_ex_hot=100')
  • 启动app,需要知道app的包名
d.app_start('com.baidu.BaiduMap')
  • 获取前台运行的app信息
print(d.app_current())
  • 清楚app缓存
d.app_clear('com.baidu.BaiduMap')
  • 卸载app
d.app_uninstall('包名')
  • 获取所有app的信息
d.app_list()
  • 停止所有的app
d.app_stop_all()
  • 卸载所有的app
d.app_uninstall_all()

四、weditor的基本操作

1、什么是Activity?

  • Activity是Android系统中的四大组件之一,可以用于显示View。Activity是一个与用户交互的系统模块
An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with setContentView(View).
总结:
实现一个登录的需求
1 线创建的android项目 给app起一个名字 包名
2 实现MainActivity的布局(activity_main xml文件 TextView EditText Button)
3 创建了另一个java.class文件 实现另外的一个Activity (LoginActivity)
- 创建了一个布局文件 xml activity_login TextView
- LoginActivity  关联布局 setContentView 关联布局
- 清单文件中要配置这个LoginActivity
​
4 MainActivity中
-  找控件
-  设置点击事件
-  设置控件跳转传值
​
5 LoginActivity中
- 找控件
- 获取数据
- 设置数据
​
1 Java基础(Java语法 1.5 - 2个月) 2 Android基础(四大组件的学习 UI布局 1个月)

2、Activity的控件

  • TextView 显示文字
  • EditText 输入框
  • ImageView 显示图片
  • Button 按钮
  • CheckBox 复选框
  • RadioButton 单选按钮

3、weditor的使用

1. 安装
  • pip install weditor -i https://pypi.douban.com/simple
  • pip install weditor
  • 在命令行确认是否链接 adb dervices
  • 在命令行内输入weditor,开启服务。
2. weditor的界面
  • 移动设备选择区
  • 控件属性区域
  • 代码展示区
  • 层级关系和结果展示区域
3. Uiselector与weditor的使用
控件的定位方式
  • UISelector
    • 表示的是一种搜索标准。在当前显示界面上来查询、获取具体元素的句柄
  • xpath
android的 基本布局
  • 线性布局:linearLayout
  • 相对布局:RelativelLayout
  • 帧布局(覆盖布局):FrameLayout
  • 表格布局:TableLayout
  • 绝对布局:AbsoluteLayout
控件的属性
Column 1 Column 2 Column 1 Column 2
index int 索引 0
instance
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值