移動端爬蟲--專案實踐loach--爬去抖音資料(四)
文集 移動端爬蟲
loach
-
loach是一個移動端爬蟲,針對現下很火的短視訊app—抖音
- 支援多個android裝置並行自動化
- 支援任意android裝置的服務端部署到任意機器
- 支援使用http方法控制任務
-
示意圖
image
- appium 提供了一組restful介面用來控制裝置
- scheduler會將從http接收到的command在存在可用裝置的時候丟給裝置去執行
- 對於CRAWLING型別的任務,是長期有效的,即任務沒有終結點,裝置會被永久佔用
- 對於FINDING型別的任務,重試三次
- 確保android sdk正確配置並adb devices能看到裝置
-
QAQ
-
整個系統有哪些組成?
loach程序、appium例項若干、android裝置若干(數量等於appium例項數量)
-
一句話概括loach的邏輯?
http api控制loach(shceduler),loach控制appium例項,appium例項控制android裝置
-
部署對網路的要求
loach程序、appium例項、android裝置必須相互知道其它所在的位置。即在同一LAN
-
loach、appium、android只能在一臺機器上執行麼?
不必,正如Q3,互通是唯一網路要求
-
補充
目前我使用i5+8Gwindows部署六臺裝置很流暢,如果需要大量部署的話。估計兩位數就上限了。
提供兩種思路:
- 分散式部署,一個loach帶十個裝置還是很輕鬆的,若干個loach程序選擇一個作為master程序並對外提供http服務
- 若干個loach並行,並各自對外提供http服務
-
-
白話部署
-
環境
appium: 1.8.1 例項六個 埠4723-4728
裝置:華為暢享7 SLA-TL10 六臺 ip分別是 192.168.1.201-206 埠 5555-5560
loach:1.2
-
啟動
-
adb連線裝置
adb connect 192.168.1.201:5555
adb connect 192.168.1.202:5556
adb connect 192.168.1.203:5557
adb connect 192.168.1.204:5558
adb connect 192.168.1.205:5559
adb connect 192.168.1.206:5560
-
啟動appium
appium -p 4723 -U 192.168.1.201
appium -p 4724 -U 192.168.1.202
appium -p 4725 -U 192.168.1.203
appium -p 4726 -U 192.168.1.204
appium -p 4727 -U 192.168.1.205
appium -p 4728 -U 192.168.1.206
-
啟動loach
cd loach/loach/instances
python app.py
-
新增任務
POST 127.0.0.1:8080/douyin/task/devices/
引數
{ "1": { "ip": "192.168.1.201", "port": 5555, "sip": "192.168.1.106", "sport":4723 }, "2": { "ip": "192.168.1.202", "port": 5556, "sip": "192.168.1.106", "sport":4724 }, "3": { "ip": "192.168.1.203", "port": 5557, "sip": "192.168.1.106", "sport":4725 }, "4": { "ip": "192.168.1.204", "port": 5558, "sip": "192.168.1.106", "sport":4726 }, "5": { "ip": "192.168.1.205", "port": 5559, "sip": "192.168.1.106", "sport":4727 }, "6": { "ip": "192.168.1.206", "port": 5560, "sip": "192.168.1.106", "sport":4728 } }
POST 127.0.0.1:8080/douyin/task/crawling/
{ "attrs":["following", "work", "like"] }
-
-