來源: 閱讀:- 2020-03-30 07:35:46
selenium是web端的自動化,appium是app端的自動化,它繼承了webdriver(也就是selenium 2)
Appium入坑前必看,附爬蟲心得
前言:
首先聲明一點,在爬任何數據的時候,一定不要先考慮用Appium,
個人建議開始爬蟲前正確的做法應該是:
1.去百度和谷歌搜下這個網站有沒有人分享出你要爬數據的API
2.看看電腦網頁有沒有你要的數據,調查下好不好拿,不管好不好拿,也不要急著就開爬
3.看看有沒有電腦能打開的手機網站,一般格式為http://m.xxx.com或http://mobile.xxxx.com,有的話可以用F12檢查抓下包,看下抓取難易程度
4.看看有沒有手機App,抓下App的包,看能不能抓到接口
5.抓下公眾號和小程序的包,看能不能抓到接口
以上調查完成后,再去確定你要選擇的爬取方式。
為什么這么說呢,你有沒有遇到過這種情況,拿著電腦網站就開爬,搞了好幾天終于搞定了反爬和加密參數,突然發現手機或者小程序能抓到現成的接口?或者突然發現這個網站直接有公開的接口。
然后你下次就會按我說的做了,哈哈哈。
其次:
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:
以下情況,請不要優先使用Appium:
(正文已結束)
免責聲明及提醒:此文內容為本網所轉載企業宣傳資訊,該相關信息僅為宣傳及傳遞更多信息之目的,不代表本網站觀點,文章真實性請瀏覽者慎重核實!任何投資加盟均有風險,提醒廣大民眾投資需謹慎!