首頁>技術>

selenium是web端的自動化,appium是app端的自動化,它繼承了webdriver(也就是selenium 2)

Appium入坑前必看,附爬蟲心得

Appium入坑前必看,附爬蟲心得

前言:

首先宣告一點,在爬任何資料的時候,一定不要先考慮用Appium,

個人建議開始爬蟲前正確的做法應該是:

1.去百度和谷歌搜下這個網站有沒有人分享出你要爬資料的API

2.看看電腦網頁有沒有你要的資料,調查下好不好拿,不管好不好拿,也不要急著就開爬

3.看看有沒有電腦能開啟的手機網站,一般格式為http://m.xxx.com或http://mobile.xxxx.com,有的話可以用F12檢查抓下包,看下抓取難易程度

4.看看有沒有手機App,抓下App的包,看能不能抓到介面

以上調查完成後,再去確定你要選擇的爬取方式。

為什麼這麼說呢,你有沒有遇到過這種情況,拿著電腦網站就開爬,搞了好幾天終於搞定了反爬和加密引數,突然發現手機或者小程式能抓到現成的介面?或者突然發現這個網站直接有公開的介面。

然後你下次就會按我說的做了,哈哈哈。

其次:

Appium不是爬蟲工具(封面圖上寫的有),而是爬蟲輔助工具,大多數情況下需要和抓包工具配合完成爬蟲!!!


接下來說下Appium的優缺點。雖然有點囉嗦,但是真的有乾貨,都是些踩過的坑,還是希望大家能耐心看完,如果實在懶得看,就看加粗的黑字就行。

先說缺點,缺點比較多:

慢慢慢慢.........慢

好了說完了。

哈哈哈,其實Appium也很冤,它是有本事點選的像光速一樣快的,可是因為連的是硬體,硬體反應完它才能進行下一步操作,所以硬體效能越好,它越給力,反之,手機打開個抖音都卡半天,網速一秒10K,讓它給你一分鐘抓幾百上千個視訊?Appium也是委屈巴巴。

什麼?要拿它跟Request,Scrapy比速度?來來來,這個加密引數來手寫下,這個反爬來搞定下,Appium根本不需要考慮加密的問題,反爬的話也相對簡單,因為你是模擬人滑動,除非你訪問太過異常,少部分軟體可能會有些限制。


說優點之前,先說說Appium爬蟲的思路。

我當初之所以選擇用Appium,是因為那時候要爬抖音無水印視訊,抓包後發現抖音的加密演算法太難了,本事有限,暫時破解不了,網上一時也沒找到現成的JS破解程式碼。我又比較懶,偶然發現一款抓包工具可以執行python指令碼,所以就想到抓包,我只需要寫幾行程式碼,讓Appium代替我滑動手機,甚至這一步可以跳過,我直接手動滑動,一邊刷抖音的同時,讓手機自己生成加密後的引數去請求伺服器,讓抓包工具去執行Python指令碼,劫持伺服器返回的視訊資源就行了,這樣省時省力,也不用把大把時間浪費在破解JS身上。雖然速度沒有request和Scrapy相比,但是還好Appium支援同時控制多臺手機,我當時模擬器三開,兩天抓了將近50W抖音無水印視訊。

這也是利用Appium在爬大多數App的主要思路。

那麼以上就是Appium的第一個優點,可以儘量少寫程式碼,避開那些頭疼的加密引數。

不僅是加密引數,如果你需要模擬註冊,需要破解滑動驗證碼或者簡訊驗證碼,也是可以用Appium並藉助第三方打碼平臺搞定的。

其次因為你是模擬人點選,而且速度夠慢,這時候缺點也變成了優點,那就是基本0反爬,大部分手機App基本沒有反爬,當然不排除個別桑心病狂的例外,比如檢測你訪問頻率,禁止你使用抓包工具,以及傳輸資料不走http協議等。

準確定位元素位置,類似xpath,而不是點選橫縱座標,這樣就算頁面佈局或者手機型號或者解析度改變了,也能準確的點到相應元素。

有些App介面上的資訊是可以直接通過Appium的text()屬性抓到的,比如微信錢包流水,以前抓過,不知道現在還能不能抓了。

可以自己寫一些小指令碼,搞個簽到,搶票,遊戲外掛啊什麼的(比如雙11時候的11.11秒那個),如果你手頭有大量閒置安卓手機,寫個指令碼,開個小工作室幫別人掛掛機刷刷金幣,刷刷任務什麼的,也是可以的,這都是後話了。


總結一下

以下情況,可以考慮使用Appium:

你要爬的資料不是太多,你又懶得寫程式碼引數加密太難搞定或者網站反爬太嚴格有些資料App特有每天定點註冊,有簡訊加滑動驗證碼就是自己私底下想搞些節省人力的小指令碼

以下情況,請不要優先使用Appium:

老大急著要資料爬取資料量巨大,除非你有大量閒置電腦或者手機必須追求穩定,因為模擬器和手機偶爾抽風也很正常。硬體效能不高,如果用安卓模擬器,必須要有顯示卡,否則模擬器不讓你安裝,即使安裝上也卡成PPT,不過我後邊會介紹如何將模擬器部署Docker,因為是無介面的,比較輕量級,對顯示卡也無硬性要求。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 新手必備:win10 系統下 VSCode+CMake+Clang+GCC 環境的搭建