1. 程式人生 > 實用技巧 >御麗詩妃,python爬蟲23 | 手機,這次要讓你上來自己動了

御麗詩妃,python爬蟲23 | 手機,這次要讓你上來自己動了

御麗詩妃,本內容來源於網路,著作權歸屬原作者。

python爬蟲23 | 手機,這次要讓你上來自己動了

原創 學習python的正確姿勢 2020-08-18 20:49:53

你有沒有想過讓你的手機幫你自動完成某些事情

比如自動幫你搶紅包

有些軟體不是有簽到活動麼

這些傻瓜式的操作

能不能讓手機自動簽到呢?

自動幫你叫外賣

自動幫你打電話

等等

還有

對於手機上的一些比較難以通過抓包獲取的資料

想不想像 selenium 那樣輕鬆獲取?

之前小帥b就給大家介紹了 selenium

python爬蟲09 | 上來,自己動!這就是 selenium 的牛逼之處

可以模擬人類自動操作瀏覽器上的網頁

我們還使用它爬取了

“雞你太美”

python爬蟲11 | 帶你爬取b站上的NBA形象大使蔡徐坤和他的球友們

相信你已經體驗到 selenium 的魅力了

對於一些複雜的 PC 端的網頁爬取

它就是個利器

不過

對於手機上的一些稍微複雜點的 APP 資料

selenium 就顯得有點無能為力了

那麼

有沒有像 selenium 這樣的框架

可以模擬人類自動操作手機上的 APP 呢

答案是肯定的

那就是

Appium

如何讓它來自動操作我們的手機呢

那麼

接下來就是

學習 python 的正確姿勢

為什麼說 Appium 牛逼呢

說 4 點足以

1、他是開源的手機端自動測試框架

2、selenium可以做的 Appium 都可以做,selenium不可以做的Appium 依然可以做,它能夠支援 Android、iOS、windows 系統的原生 APP 進行自動操作

3、它可以支援不同的語言寫指令碼,比如我們的 Python,還有Java、JavaScript 等

4、以前你想要爬取 App 的資料的時,對於較難抓取的資料,你還需要對 App 進行反編譯,很麻煩,但是 Appium 就不需要這麼麻煩

那 Appium 是怎麼玩的呢

你可以把 Appium 當做是一個伺服器

我們將我們寫的控制操作 APP 的 python 程式碼

扔給 Appium

Appium 得到了請求,看到你跟它說要怎麼去操作 APP

它就乖乖的聽你話去操作 APP 了

我們在使用 Appium 之前

我們需要安裝相關的環境才可以使用

由於 Android 開源又好用,又有虛擬機器可以玩

所以我們要的就是自動操作 Android 手機

具體來說

我們需要安裝以下環境

真香警告

Appium 雖然比 selenium 對環境的要求相對複雜一丟,但是相信我,搞定之後你絕對會體驗到 Appium 的魅力,接下來要說的內容相對乾貨,你需要拿出點時間,然後跟著 小帥b 一步一步裝起來,如果你之前沒接觸相關的環境安裝,可能在安裝過程中你會說幾次髒話,沒關係,"挖槽","TMD" 完之後,都給我安裝好以下內容。

1、node.js 和 npm

Appium需要

2、JDK

java 環境,Android需要這個環境

3、Android SDK

Android強大的開發工具包

4、Android虛擬機器

可選,如果你用你的真雞也可以的,用 usb 插入電腦就行

5、Appium

我們的主角

6、Appium-Python-Client

python客戶端,用來連線 Appium

7、Python

python相信你早已經安裝了,還沒有安裝的是豬吧?

那麼接下來

小帥b教你一步一步地安裝起來

不同的作業系統安裝方式可能有些許不同

但都差不多也就那會事

1、安裝node和npm

你可以到以下連結去下載 node 安裝包

https://nodejs.org/zh-cn/download/

然後一頓安裝

windows安裝的時候記得勾選 Add to path (新增到環境變數)

如果你和小帥b一樣用 ubuntu 這種類 Unix 系統的話輸個命令就行

sudoapt-getupdatesudoapt-getinstallnodejs

然後你輸入命令 node -v

如果顯示版本號就說明你成功安裝 node 了

xiaoshuaib@xiaoshuaib:~$node-vv10.15.3


安裝 node 過程中同時也安裝了 npm 了

輸入 npm -v 有顯示版本好的話說明你安裝好了 npm

xiaoshuaib@xiaoshuaib:~$npm-v6.4.1

2、安裝JDK

你可以到以下連結去下載 jdk

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

根據你的系統自行選擇相應的 jdk

安裝完成之後記得配置好 Java 環境變數

如何配置 jdk 環境變數就不在這裡說了

因為不同的系統配置方式不同

你可以自行 Google

在你的終端輸入 javac ,如果你得到如下的東西說明你成功安裝好 jdk 和 配置好環境了

xiaoshuaib@xiaoshuaib:~$javacUsage:javac<options><sourcefiles>wherepossibleoptionsinclude:  -g                         Generate all debugging info-g:noneGeneratenodebugginginfo-g:{lines,vars,source}Generateonlysomedebugginginfo  -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}Controlwhetherannotationprocessingand/orcompilationisdone....

3、安裝Android SDK

有些小夥伴可能之前沒開發過 Android

不過沒關係

Android SDK 是 Android 開發的工具包

下載方式和 JDK 類似

可以到以下連結去下載 sdk

https://developer.android.com/studio#downloads

如果你打不開這個連結的話

可以用映象連結

http://www.android-studio.org/index.php/download/hisversion

下載完之後就一頓解壓

解壓完之後開啟 sdkmanager

windows的話有介面

直接選擇一個 Android 版本

然後你點選 install package 就可以了

或者你也可以像 Linux 一樣

解壓完之後

進入目錄中的 /tools/bin

輸入以下命令安裝最新的工具

xiaoshuaib@xiaoshuaib:~/android/tools/bin$./sdkmanager"platform-tools""platforms;android-28"

接著配置一下環境變數

ubuntu 的話可以這樣配

開啟 profile

sudovim/etc/profile

新增你安裝的sdk的目錄

exportANDROID_HOME=/home/xiaoshuaib/androidexportPATH=$PATH:${ANDROID_HOME}/toolsexportPATH=$PATH:${ANDROID_HOME}/platform-tools

然後設定生效後重啟一下

source/etc/profile

windows配置環境變數的話

也是這個道理

在你的電腦--屬性--高階--環境變數

新建一個變數 ANDROID_HOME

值就是你剛剛解壓下來的 Android 目錄

然後在你的 path 中新增

${ANDROID_HOME}/tools;${ANDROID_HOME}/platform-tools

接著

在命令列輸入 adb shell

如果你出現和小帥b以下這樣的就說明你配置對了

xiaoshuaib@xiaoshuaib:~$adbshell*daemonnotrunning;startingnowattcp:5037*daemonstartedsuccessfully

4、安裝 android 虛擬機器

其實你有真雞的話不用安裝也可以

安裝虛擬機器你可以到以下連結下載

https://www.genymotion.com/download

想當年小帥b在玩 Android 開發的時候就經常用 genymotion

速度相對來說快了不少

開啟虛擬雞或者用你的真雞連線電腦(記得開啟usb除錯)

然後輸入 adb devices

如果你像小帥b一樣列出你現在的 Android 手機

xiaoshuaib@xiaoshuaib:~$adbdevicesList of devices attached88CKBM622PAMdevice

那麼就說明是正確的啦

5、安裝 Appium

第一種安裝方式

使用命令列用 npm 安裝 Appium

npminstall-gappium

ubuntu需要許可權的話可以使用如下命令

sudonpminstall-gappium--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]AppiumRESThttpinterfacelistenerstartedon0.0.0.0:4723

6、Appium-Python-Client

pip install Appium-Python-Client

OK

那麼到現在我們就把該裝的裝完了

酸爽~

我們可以來安裝以下 appium-doctor 來檢測一下我們安裝的環境是否都可以了

npm install -g appium-doctor

安裝完之後輸入 appium-doctor

如果你也出現這樣的

congratulation

你已經搞定所需環境啦

事不宜遲

趕緊整個小例子試試水先

我們就讓它自動開啟手機的微信 APP 吧

確保手機連線到電腦

xiaoshuaib@xiaoshuaib:~$adbdevicesList of devices attached88CKBM622PAM  device

開啟 Appium

xiaoshuaib@xiaoshuaib:~$appium[Appium] Welcome to Appium v1.12.1[Appium]AppiumRESThttpinterfacelistenerstartedon0.0.0.0:4723

寫個python

#coding=utf-8
fromappiumimportwebdriver
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)

執行python之後