客戶端爬取-答網友問

wendux發表於2019-03-04

“客戶端爬取”釋出之後,有鮮花也有質疑,也有很多愛智求真、善於思考的同學在點贊之餘,提出了一些有價值或者覺得有必要一答的問題,包括技術層面和道德層面,本文就主要問題作出解答。

在閱讀本文之前,應該先看看這兩篇:

爬蟲技術( 一) 一篇文章瞭解爬蟲技術現狀

爬蟲技術(二) 客戶端爬蟲

爬蟲技術(三) 客戶端爬取

問題一:需要安裝app嗎?這成本也太高了吧?

“客戶端爬蟲的前提是使用者要安裝你的 App,這個成本太高了呀!” --掘金網友

客戶端爬取不是一個app, 它只是一個提供客戶端爬取能力的sdk, 可以供任何第三方app整合。而sdk本身也不大android版aar包也僅150k. 而ios是以靜態庫方式提供,編譯後會更小。

問題二:客戶端爬蟲應用在什麼場景

”我不明白使用者為何要安裝這個 app 幫你爬取資料。即使使用者有這個意願,為什麼要用手機這種計算能力這麼弱的裝置,為何不直接寫一個瀏覽器外掛或者指令碼。總之,覺得太雞肋了“ --掘金網友

需求場景我在爬蟲技術二-客戶端爬蟲 中已經講過:

“近年來,隨著P2P的快速發展,網際網路金融更是處於風口浪尖,這個萬億級的市場,吸引了一大批公司,像螞蟻金服、陸金所、愛錢進、理財通、百度金融等等。而網際網路金融的本質主要是風險控制、所以一個強大徵信平臺至關重要。從業務角度來看,網際網路金融公司一般都會分為兩塊:資產端和資金端,也就是貸款方和投資方,而這裡最具風險的就是對貸款方的資質稽核,而所謂網際網路金融,無非是將認證流程提到了線上,借款時,通過相應平臺的的app完成申請流程。而借款流程中往往需要獲取使用者個人資訊,進而對使用者信用進行評定,如信用卡代還的借款需要使用者信用卡賬單郵箱,大額貸甚至需要使用者支付寶交易記錄、京東淘寶購買記錄等等。而要獲取這些資訊,要麼和都是需要使用者授權/登入的,而這些網站通常為了安全期間,對ip請求的次數、頻率都有著嚴格的限制,這導致傳統的後臺爬蟲不能勝任,此時急需一種新的解決方案。”

也就是說,有些APP有獲取使用者個人資訊的需求,而這些資訊在後臺獲取會有諸多限制。

還有,值得一提的是,支付寶APP中也加入了爬取信用卡賬單郵箱的功能:支付寶->芝麻分->信用卡賬單 中繫結賬單郵箱時會跳到qq郵箱手機版登入頁面,登入成功後,便開始獲取信用卡詳單記錄(但不知為什麼,我的獲取了2分鐘左右提示失敗了), 到底是怎麼實現的,我猜應該也是在端上進行的爬取。

問題三:移動裝置計算能力這麼弱,為什麼非得在客戶端爬取?

這個問題在之前文章中講過,主要的原因是:後臺爬蟲在一些情況下不能滿足業務。如問題二中所述,目前客戶端爬取技術主要是用於借款app中用於獲取使用者信用資訊,而此時都會有一個使用者授權/登入的過程,而如果依然用後臺爬取的話,想想現在的網站登入頁各種奇葩的驗證碼,將很難。還有就是後臺爬取總會遇到ip限制導致不能爬取。 基於這兩點,如果使用者的某些關鍵資訊對放款風控政策非常重要時,後臺爬取的可用性將大大降低。

問題四:會侵犯使用者隱私?

“這。。。讓使用者安裝你的 APP 去讓你收集自己的隱私。。。會上頭條的。” -掘金網友

“不道德,如果用在一個成熟的app上面,難免會遭遇投訴,舉報。”-簡書網友

道不道德,取決於產品的動機 ,技術只是技術, 如果產品需要一些使用者資料, 完全可以先告知使用者,在使用者授權後再繼續。這不僅僅是客戶端爬取面對的問題,如果開發者不懷好意,或者產品經理和老闆沒節操(比如要求開發在app中獲取使用者簡訊等),只要使用者執行你的app,都可能會洩漏隱私。技術無罪,刀不殺人,關鍵是看持刀的人,而客戶端爬取只是技術。

問題五:客戶端爬取效率如何?

客戶端爬取是單執行緒,並不適合大規模爬取。其實,在客戶端,你也不應該進行大規模爬取,因為這樣會嚴重消耗使用者流量!

問題六:目前就只支援android/ios嗎?客戶端爬取還有沒有進一步計劃?

我本想將客戶端爬取做成兩部分:

  1. 移動端;也就是現在大家看到的。
  2. pc端:面向程式設計師,提供一個pc端爬取環境,然後這個環境基於v8,帶介面。爬取指令碼和移動端一樣,相互相容,都使用js,共用一套api.

目前 android sdk已開發測試,ios sdk 馬上也會開放。而pc端工具做了70%。由於作者時間精力有限,會先確保移動端sdk穩定可用。

問題七: 客戶端爬取和後臺爬取哪個更好?

沒有最好的技術,只有最合適的技術。 客戶端爬取主要是在互動複雜、後臺ip限制的情況下有優勢。而後臺爬取的優勢在於可以大規模爬取,收集資料。具體選哪個,需要根據自身業務選擇。

問題八:客戶端爬取真的那麼牛叉嗎,是不是吹過了,作者裝逼吧?

對於這種問題,向來是不屑於反駁,因為這個問題已不是單純的討論技術了。不是每一個人都可以改變世界,我尊敬那些能給這個世界帶來新的東西的人。當然,所有人都有評價的權利。

最後

若仍有疑問,請留言,或github.

相關文章