你有沒有想過讓你的手機(jī)幫你自動完成某些事情
比如自動幫你搶紅包
有些軟件不是有簽到活動么
這些傻瓜式的操作
能不能讓手機(jī)自動簽到呢?
自動幫你叫外賣
自動幫你打電話
等等
還有
對于手機(jī)上的一些比較難以通過抓包獲取的數(shù)據(jù)
想不想像 selenium 那樣輕松獲取?
之前小帥b就給大家介紹了 selenium
python爬蟲09 | 上來,自己動 !這就是 selenium 的牛逼之處
可以模擬人類自動操作瀏覽器上的網(wǎng)頁
我們還使用它爬取了
“”
python爬蟲11 | 這次,將帶你爬取b站上的NBA形象大使蔡徐坤和他的球友們
相信你已經(jīng)體驗(yàn)到 selenium 的魅力了
對于一些復(fù)雜的 PC 端的網(wǎng)頁爬取
它就是個利器
不過
對于手機(jī)上的一些稍微復(fù)雜點(diǎn)的 APP 數(shù)據(jù)
selenium 就顯得有點(diǎn)無能為力了
那么
有沒有像 selenium 這樣的框架
可以模擬人類自動操作手機(jī)上的 APP 呢
答案是肯定的
那就是
Appium
如何讓它來自動操作我們的手機(jī)呢
那么
接下來就是
學(xué)習(xí) python 的正確姿勢
為什么說 Appium 牛逼呢
說 4 點(diǎn)足以
1、他是開源的手機(jī)端自動測試框架
2、selenium可以做的 Appium 都可以做,selenium不可以做的Appium 依然可以做,它能夠支持 Android、iOS、windows 系統(tǒng)的原生 APP 進(jìn)行自動操作
3、它可以支持不同的語言寫腳本,比如我們的 Python,還有Java、JavaScript 等
4、以前你想要爬取 App 的數(shù)據(jù)的時,對于較難抓取的數(shù)據(jù),你還需要對 App 進(jìn)行反編譯,很麻煩,但是 Appium 就不需要這么麻煩
那 Appium 是怎么玩的呢
你可以把 Appium 當(dāng)做是一個服務(wù)器
我們將我們寫的控制操作 APP 的 python 代碼
扔給 Appium
Appium 得到了請求,看到你跟它說要怎么去操作 APP
它就乖乖的聽你話去操作 APP 了
我們在使用 Appium 之前
我們需要安裝相關(guān)的環(huán)境才可以使用
由于 Android 開源又好用,又有虛擬機(jī)可以玩
所以我們要的就是自動操作 Android 手機(jī)
具體來說
我們需要安裝以下環(huán)境
真香警告
Appium 雖然比 selenium 對環(huán)境的要求相對復(fù)雜一丟,但是相信我,搞定之后你絕對會體驗(yàn)到 Appium 的魅力,接下來要說的內(nèi)容相對干貨,你需要拿出點(diǎn)時間,然后跟著 小帥b 一步一步裝起來,如果你之前沒接觸相關(guān)的環(huán)境安裝,可能在安裝過程中你會說幾次臟話,沒關(guān)系,"挖槽","TMD" 完之后,都給我安裝好以下內(nèi)容。
1、node.js 和 npm
Appium需要
2、JDK
java 環(huán)境,Android需要這個環(huán)境
3、Android SDK
Android強(qiáng)大的開發(fā)工具包
4、Android虛擬機(jī)
可選,如果你用你的真雞也可以的,用 usb 插入電腦就行
5、Appium
我們的主角
6、Appium-Python-Client
python客戶端,用來連接 Appium
7、Python
python相信你早已經(jīng)安裝了,還沒有安裝的是豬吧?
那么接下來
小帥b教你一步一步地安裝起來
不同的操作系統(tǒng)安裝方式可能有些許不同
但都差不多也就那會事
1、安裝node和npm
你可以到以下鏈接去下載 node 安裝包
https://nodejs.org/zh-cn/download/
然后一頓安裝
windows安裝的時候記得勾選 Add to path (添加到環(huán)境變量)
如果你和小帥b一樣用 ubuntu 這種類 Unix 系統(tǒng)的話輸個命令就行
sudo apt-get update
sudo apt-get install nodejs
然后你輸入命令 node -v
如果顯示版本號就說明你成功安裝 node 了
xiaoshuaib@xiaoshuaib:~$ node -v
v10.15.3
安裝 node 過程中同時也安裝了 npm 了
輸入 npm -v 有顯示版本好的話說明你安裝好了 npm
xiaoshuaib@xiaoshuaib:~$ npm -v
6.4.1
2、安裝JDK
你可以到以下鏈接去下載 jdk
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
根據(jù)你的系統(tǒng)自行選擇相應(yīng)的 jdk
安裝完成之后記得配置好 Java 環(huán)境變量
如何配置 jdk 環(huán)境變量就不在這里說了
因?yàn)椴煌南到y(tǒng)配置方式不同
你可以自行 Google
在你的終端輸入 javac ,如果你得到如下的東西說明你成功安裝好 jdk 和 配置好環(huán)境了
xiaoshuaib@xiaoshuaib:~$ javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
...
3、安裝Android SDK
有些小伙伴可能之前沒開發(fā)過 Android
不過沒關(guān)系
Android SDK 是 Android 開發(fā)的工具包
下載方式和 JDK 類似
可以到以下鏈接去下載 sdk
https://developer.android.com/studio#downloads
如果你打不開這個鏈接的話
可以用鏡像鏈接
http://www.android-studio.org/index.php/download/hisversion
下載完之后就一頓解壓
解壓完之后打開 sdkmanager
windows的話有界面
直接選擇一個 Android 版本
然后你點(diǎn)擊 install package 就可以了
或者你也可以像 Linux 一樣
解壓完之后
進(jìn)入目錄中的 /tools/bin
輸入以下命令安裝最新的工具
xiaoshuaib@xiaoshuaib:~/android/tools/bin$ ./sdkmanager "platform-tools" "platforms;android-28"
接著配置一下環(huán)境變量
ubuntu 的話可以這樣配
打開 profile
sudo vim /etc/profile
添加你安裝的sdk的目錄
export ANDROID_HOME=/home/xiaoshuaib/android
export PATH=$PATH:${ANDROID_HOME}/tools
export PATH=$PATH:${ANDROID_HOME}/platform-tools
然后設(shè)置生效后重啟一下
source /etc/profile
windows配置環(huán)境變量的話
也是這個道理
在你的電腦--屬性--高級--環(huán)境變量
新建一個變量 ANDROID_HOME
值就是你剛剛解壓下來的 Android 目錄
然后在你的 path 中添加
${ANDROID_HOME}/tools;${ANDROID_HOME}/platform-tools
接著
在命令行輸入 adb shell
如果你出現(xiàn)和小帥b以下這樣的就說明你配置對了
xiaoshuaib@xiaoshuaib:~$ adb shell
* daemon not running; starting now at tcp:5037
* daemon started successfully
4、安裝 android 虛擬機(jī)
其實(shí)你有真雞的話不用安裝也可以
安裝虛擬機(jī)你可以到以下鏈接下載
https://www.genymotion.com/download
想當(dāng)年小帥b在玩 Android 開發(fā)的時候就經(jīng)常用 genymotion
速度相對來說快了不少
打開虛擬雞或者用你的真雞連接電腦(記得打開usb調(diào)試)
然后輸入 adb devices
如果你像小帥b一樣列出你現(xiàn)在的 Android 手機(jī)
xiaoshuaib@xiaoshuaib:~$ adb devices
List of devices attached
88CKBM622PAM device
那么就說明是正確的啦
5、安裝 Appium
第一種安裝方式
使用命令行用 npm 安裝 Appium
npm install -g appium
ubuntu需要權(quán)限的話可以使用如下命令
sudo npm install -g appium --unsafe-perm=true --allow-root
第二種安裝方式
你也可以到以下鏈接直接下載安裝包
https://github.com/appium/appium-desktop/releases
安裝完之后輸入命令 appium
如果你和小帥b這樣的就說明成功安裝 Appium了
xiaoshuaib@xiaoshuaib:~$ appium
[Appium] Welcome to Appium v1.12.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
6、Appium-Python-Client
pip install Appium-Python-Client
OK
那么到現(xiàn)在我們就把該裝的裝完了
酸爽~
我們可以來安裝以下 appium-doctor 來檢測一下我們安裝的環(huán)境是否都可以了
npm install -g appium-doctor
安裝完之后輸入 appium-doctor
如果你也出現(xiàn)這樣的
congratulation
你已經(jīng)搞定所需環(huán)境啦
事不宜遲
趕緊整個小例子試試水先
我們就讓它自動打開手機(jī)的微信 APP 吧
確保手機(jī)連接到電腦
xiaoshuaib@xiaoshuaib:~$ adb devices
List of devices attached
88CKBM622PAM device
開啟 Appium
xiaoshuaib@xiaoshuaib:~$ appium
[Appium] Welcome to Appium v1.12.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
寫個python
# coding=utf-8
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': '88CKBM622PAM',
'platformVersion': '5.1',
'appPackage': 'com.tencent.mm',
'appActivity': 'com.tencent.mm.ui.LauncherUI'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
運(yùn)行python之后
Appium 開始執(zhí)行
看看你的手機(jī)
自動打開了!
cool~
ok
本篇主要讓你知道怎么安裝這些所需要的環(huán)境
可能你現(xiàn)在有點(diǎn)疑問
怎么知道微信的包名的
怎么知道微信的啟動頁面的
python代碼如何寫自動操作的
別急
你先把環(huán)境安裝好
下一篇
小帥b將帶你使用 Appium 來爬取 APP 上的數(shù)據(jù)
期待就好了
帥b老仙
法力無邊
右下角點(diǎn)一下
給小帥b發(fā)點(diǎn)功
聯(lián)系客服