公司最近要做一款手機,手機需要制作一個應(yīng)用市場。那么問題來了,自己制作應(yīng)用市場,數(shù)據(jù)從哪來呢?作為一個創(chuàng)業(yè)型公司。搜集數(shù)據(jù)變成為了難題。
于是突然想到能不能通過程序去抓取別人應(yīng)用市場的數(shù)據(jù)……
那么我們一步一步的來看,如何抓取華為應(yīng)用市場的APK信息。
首先打開華為官網(wǎng)

看到如下頁面。然后我們在谷歌瀏覽器中按F12查看一下下載是否是明文鏈接

隨便選擇一個 ,右鍵查看下載的屬性。

在這里我們可以看見a標(biāo)簽的onclick是一個js方法zhytools.downloadApp();
方法體大致有幾個參數(shù),可能分別是 文件ID(唯一碼)、文件名稱、文件所屬類別(華為自己的分類如:上升最快、首頁等等)、這個數(shù)量也可能是某個id、文件類別(文件所屬的應(yīng)用分類)、文件下載路徑、文件版本、最后個好像默認都是1。
好了我們看到一個下載方法有這么多參數(shù)。
然后我們可以打開其中的下載地址看看。

其中下載地址是這一段 。在瀏覽器直接輸入這個地址

則彈出了APK下載信息。好了。那么我們只要存儲對于的地址。放入我們的應(yīng)用市場接口之中。那么我們的應(yīng)用市場的數(shù)據(jù)將可以來源與華為應(yīng)用市場了。
好了 我們開始實戰(zhàn)!
首先用vs創(chuàng)建一個windows應(yīng)用程序。

輸入程序名字Crawler
點擊確定

首先給 form的size改成1280*768 (看著舒服點)

然后我們分別拖一個textbox1 作為網(wǎng)址輸入地址。
一個webbrowser用來獲取網(wǎng)頁信息
一個按鈕用來綁定webbrowser
一個textbox2 的多行文本框 來顯示抓取信息。
(這里先簡單展示??勺鰞?yōu)化存入數(shù)據(jù)庫)
然后我們雙擊button1

綁定webbrowser1的url地址
和頁面加載完成事件。

然后我們在頁面加載事件里讀取webbrowser的html內(nèi)容這里我們簡單用正則去匹配
zhytools.downloadApp(.+);來讀取參數(shù)內(nèi)容
我們運行一下程序看看

程序運行后我們在url地址輸入華為的應(yīng)用市場頁面地址http://app.hicloud.com/
然后點擊確定按鈕

可以看到我們抓取了很多鏈接。我們可以將這些連接的參數(shù)分割存入我們的數(shù)據(jù)庫使用。
當(dāng)然這里只是抓取了首頁的一部分連接。然后我們點擊游戲排行的更多

可以看到跳轉(zhuǎn)到新頁面我們又抓取了很多鏈接。
在點擊一下精品推薦試試


可以看到我們抓了很多當(dāng)前頁面的下載鏈接。
一個簡易爬蟲基本形成。如果想要下載更多的資源。我們可以寫算法去自動針對頁面跳轉(zhuǎn)。爬更多的頁面。這樣即可存入更多的應(yīng)用下載路徑啦。