社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用Python爬取手机APP

Python中文社区 • 5 年前 • 677 次点击  

前言

如果你以为python只可以爬取web网页,那就大错特错了,本篇文章教你如何爬取手机app的信息。

Charles(抓包工具)的安装

1.1 下载

由于是收费软件,这里给大家一个链接,自行下载,windows版本,如果是其他系统还是去官网吧。https://www.charlesproxy.com

windows版:

网盘下载链接及提取码请扫码关注文末公众号后回复抓包”获取

1.2 安装证书

由于现在的网站基本全都是https通信协议,所以我们需要配置SSL证书。

下载完成后打开软件。点击help-->SSL Proxying-->install Charles Root Centificate。

在弹出的安装证书页面,点击安装证书,点下一步--选择证书的存储区域--下一步--选择将所有的证书都放如下列存储--浏览--受信任的根证书颁发机构--确定--下一个--是--安装完成。

1.3 手机安装证书(Android)

在pc端的Charles中查看代理是否开启。Proxy-->Proxy Settings。查看HTTP Proxy 是否开启,没有开启的点击 Enable transparent HTTP proxying,点击ok即可。

手机和电脑连同一个wifi,查看一下电脑的ip地址。我的是192.168.1.17。打开手机的wifi,连上wifi,代理,手动,主机名填写ip地址,也就是192.168.1.17.默认端口欧为8888,电脑上会弹出一个是否信任的窗口,点击Allow即可。

手机端在浏览器(不要用原装浏览器)中打开chls.pro/ssl 会弹出一个下载页面,下载即可。

1.4 体验一下Charles

点一下左侧的扫把,清空,开启监听,即左侧第二个按钮。手机打开qq,打开列表一直划,会看到左侧出现了很多求情,遗憾的是只能看到好友的头像,其他内容都加密了。捕捉到信息后点击一下,再点击右边的Contents,可以看下返回的数据,json,jsontext 等等,捕捉到的信息足够我们分析页面就好了。可以自己动手体验一下。

Appium的安装

appium是什么?和selenium很像,一个在pc端,一个在手机端而已。

appium下载地址:https://github.com/appium/appium-desktop/releases

Android Studio下载地址:https://developer.android.com/studio/index.html?hl=zh-cn

我们还需要安装java环境。和nodejs,这些直接百度下载,安装即可,需要配置好环境变量。

appium的使用

安装好所有的配置环境后。我们打开appium、会看到这个页面。

我们直接点击 Start Server 即可。注意,appium使用的前提是需要android sdk和 java环境。如果没有配置好,后面运行是会报错的,出现错误可以后台直接回复,看到会第一时间回复。点击之后我们进入到这个页面:

我们点击右上角第一个像搜索的按钮,创建一个新的Session,会出现:

此时我们需要将我们的Android手机用数据线和电脑连接,并且把手机的use调试功能打开。我们可以输入dos命令,查看手机是否已经连接并开启了usb调试功能。adb devices -l 会看到:

表示手机连接成功,如果没有出现,说明可能手机没有开启usb调试功能。model 表示手机型号.

接下来,我们在新创建的Session中写点配置,实现自动打开微信页面。

"platformName""Android",

"deviceName""MI_6",

"appPackage""com.tencent.mm",

"appActivity"".ui.LauncherUI"

platformName:平台名称,我们的是Android。

deviceName:手机型号。

appPackage:微信的包名。

appActivity:微信的入口。

点击Save, 再点击Start Session,会看到如下页面。

找到我们的登录按钮,点击一下右侧Tab,即可进入登录页面:

同样的,我们定位到手机号按钮,点击右侧的Send keys, 即可:

点击Send keys 即可同步。如果要生成对应的python代码,可以这样:

点击最上方第三个录制按钮,再点一下Tab,在Recorder选择python即可。

用python操控app

4.1 打开微信

这样即可达到打开微信的操作。

4.2 点击登录输入电话号码

这里需要有selenium的基础和解析库的基础,不知道的可以看下:连接1,连接2

4.3 获取微信按钮的id

其他操作

上一个示例已经完成初始化desired capabilities,定位到元素,点击,文本输入操作操作。

5.1 屏幕滚动操作

scroll('被操控元素','目标元素')

5.2 利用坐标滚动

swipe(start_x,start_y,end_x,end_y,duration = None)

start_x:起始坐标横坐标。

start_y:起始坐标纵坐标。

end_x:结束坐标横坐标。

end_y:结束坐标纵坐标。

duration:点击的持续时间。

还有一个方法没有持续时间,直接快速滑倒该位置。

flick(start_x,start_y,end_x,end_y)

5.3 拖拽操作

drag_and_drop('被拖拽元素','拖拽到的目标元素')

最后送大家一个工具大礼包如上,请扫码关注下方公众号后回复“大礼包”获取


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/qeQiSoTRlQ
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/27073
 
677 次点击