App中的數據可以用網路爬蟲抓取么?

爬取美團,點評,餓 么,百度外賣等App上的開放數據,凡是可以看到的App數據都要可以抓取。


首先,答案是完全肯定的:凡是可以看到的APP數據都可以抓取。

剛好最近有時間,用自身經歷回答下吧。本人本科所學專業為金融工程,研究生轉學數據挖掘,為課題做調研、幫同學找論文數據也前後抓取過十幾個APP,算是有一些經驗。可以說其實大部分APP數據都是可以比較容易拿到的。

-------------正文分割線-------------

其實所謂抓取APP數據和抓取網頁數據是存在一定的不同,抓取網頁數據可以採用模擬訪問網站然後抓取網頁接收內容的模式進行數據抓取。而APP則更傾向於通過截獲數據傳輸包的形式進行(Wireshark和Fiddler+Python)。

一般來說,我們用WireShark+Fiddler來獲取大部分數據是沒有多大問題的。但這裡有個問題是,如果你碰到的是用SSL/TLS等加密手段加密過的網路數據的時候,往往我們只能束手無策。在過去的話,如果我們擁有的該傳輸會話的私鑰的話我們還是可以將它提供給WireShark來讓其對這些加密數據包進行解密的,但這已經是想當年還用RSA進行網路數據加密的年代的事情了。當今大家都已經逐漸擁抱前向加密技術PFS的時代了,所以該方法就不再適用了。因為前向加密技術的目的就是讓每個數據交互都使用的是不同的私鑰,所以你像以前RSA時代一樣想只用一個私鑰就能把整個session會話的網路數據包都破解出來的話是不可能的了(其實可以也通過類似瀏覽器的Session Key功能解決)。

-------------案例分割線-------------

先舉幾個最近抓的案例吧,後面放教程:

A. 充電網app——一款充電樁查詢軟體

充電網app截圖

目標:獲取特定地區所有充電站、充電樁的信息(站點名、電樁數量、位置、電壓、充電方式、收費信息等等)

充電網app數據

B. 在藝app——一款看展覽的APP

在藝app截圖

目標:獲取特定地區所有展館的信息(名稱、地址、票價、開放時間、近期展覽、評價、活動等等)

在藝app數據

C. 天眼查app——一款查詢企業工商信息及周邊APP

天眼查app截圖

目標:獲取特定企業所有招聘的信息(崗位基礎信息及詳情、來源等等)

天眼查app數據

-----------------教程分割線-----------------

下面大概講一下(假裝你已經具備相應基礎,手動斜眼):

1、假設要抓一款APP,當然是要儘可能全面的獲取數據,主要有HTTP/ HTTPS兩個協議類型。首先HTTP是比較容易的,我們知道Fiddler是可以拿到HTTPS數據的,就是把Fiddler證書安裝到設備中即可。安裝過程也很簡單:

2、這樣,所有通過目標APP的數據 ,包括HTTPH /TTPS協議數據都能獲得了:

3、wireshark獲得目標APP的TCP數據:

4、通過以上操作可以取得大部分的數據,剩下的就是分析數據的工作了。當然在使用wireshark進行數據的過程中,我們常常會抓到TLS報文,TLS定義為介於TCP和HTTP之間的協議,因此會隱藏HTTP的內容,在我們分析的時候比較不方便,當然也是可以的,就不在這裡展開了。

5、當然,拿到的原始數據還需要進行大量的清洗工作,形成最終的EXCEL格式更是需要綜合運營文件合併、格式轉換、編碼轉換、數據分析等操作。

-----------------正文分割線-----------------

空閑時可接私活,有APP抓取、數據挖掘需求的朋友可以私聊或加我微信:HZKLYY。


抓APP和網頁一樣的,抓包分析,擼代碼


可以
app里的數據比web端更容易抓取,反爬蟲也沒拿么強,大部分也都是http/https協議,返回的數據類型大多數為json。

通常通過抓包工具來查看請求的介面和參數,簡單的可以用fidder,手機端設置代理即可,如果要抓取像聲音/視頻這種udp的包 可以使用wireshark。

有的app在請求參數和返回上做了加密或者壓縮比較煩人,像這種情況我只會通過找規律來解決了?_?

手機內部對於圖片和部分信息都有緩存處理,如果抓不到可以清理緩存再抓。

從技術上來說只要能獲取下來就能抓取,只是實現難度不一樣罷了……


分析研究過不下300個APP抓包。

50%的app,通過抓包軟體就可以分析出抓取參數並抓取到信息。

30%的app,可能需要適當的反編譯,分析出加密演算法並抓取到信息。

10%的app,可能加固,需要脫殼,然後反編譯,分析出加密演算法並抓取到信息。

10%的app,通過各式各樣的簽名,證書,設備綁定等方法,隱藏加密演算法。

總的來說,沒有不能抓取的app,只是時間成本的問題。


這個問題的答案是肯定的。雖然我還沒有抓過app的數據,但依照在抓取web中的一些經驗,既然數據在網路中傳遞,那麼一定會有request和response,也就是說只要找到對應的url,就能通過post數據去拿到返回數據,只不過是這個介面在哪需要你去發現而已。
像你問到的幾個app,都web版本,你只需要找到入口,就能抓取數據了。具體的抓取細節,網頁的結構和規則各種各樣,都需要在詳細抓取中詳細分析,還有,謝邀,還有問題我能回答的,我會儘力回答的。


可以,理論上,只要有網路請求的所有應用數據都可以抓取。

初級:前提是你要會抓包分析請求數據,一般都是HTTP協議,簡單,複雜的如微信,一些token、秘鑰是通過socket通信,獲取。

複雜一點:如果有些App還在請求加入了驗證、混淆,這就需要你去反編譯App源碼,分析其中的驗證、歡迎演算法。

更複雜的:對App源碼進行了加密,或者是對其中關鍵演算法,使用了c++這種編寫,就是為了防止你破解。


可以的只要信息是公開的搜數都可以免費爬取的到的


你好我有個問題,我想抓取微博問答里圍觀者的數據,但是微博web版里沒有相關信息,但是app微博里有所有圍觀者信息,就不知道如何爬取,可否幫忙分析下


為什麼抓APP而不是直接抓網頁?


如果是只需要這幾個app的話,你會發現它們都有對應的網頁可以抓。
除了百度外賣另外幾個似乎都會把很多信息放在首頁上,百度外賣似乎需要提交表單
我也是爬蟲剛入門=_=


推薦閱讀:

TAG:爬蟲計算機網路 | 數據抓取 |