公司最近要做一款手機,手機需要制作一個應用市場。那么問題來了,自己制作應用市場,數(shù)據(jù)從哪來呢?作為一個創(chuàng)業(yè)型公司。搜集數(shù)據(jù)變成為了難題。
于是突然想到能不能通過程序去抓取別人應用市場的數(shù)據(jù)……
那么我們一步一步的來看,如何抓取華為應用市場的APK信息。
首先打開華為官網(wǎng)
看到如下頁面。然后我們在谷歌瀏覽器中按F12查看一下下載是否是明文鏈接
隨便選擇一個 ,右鍵查看下載的屬性。
在這里我們可以看見a標簽的onclick是一個js方法zhytools.downloadApp();
方法體大致有幾個參數(shù),可能分別是 文件ID(唯一碼)、文件名稱、文件所屬類別(華為自己的分類如:上升最快、首頁等等)、這個數(shù)量也可能是某個id、文件類別(文件所屬的應用分類)、文件下載路徑、文件版本、最后個好像默認都是1。
好了我們看到一個下載方法有這么多參數(shù)。
然后我們可以打開其中的下載地址看看。
其中下載地址是這一段 。在瀏覽器直接輸入這個地址
則彈出了APK下載信息。好了。那么我們只要存儲對于的地址。放入我們的應用市場接口之中。那么我們的應用市場的數(shù)據(jù)將可以來源與華為應用市場了。
好了 我們開始實戰(zhàn)!
首先用vs創(chuàng)建一個windows應用程序。
輸入程序名字Crawler
點擊確定
首先給 form的size改成1280*768 (看著舒服點)
然后我們分別拖一個textbox1 作為網(wǎng)址輸入地址。
一個webbrowser用來獲取網(wǎng)頁信息
一個按鈕用來綁定webbrowser
一個textbox2 的多行文本框 來顯示抓取信息。
(這里先簡單展示。可做優(yōu)化存入數(shù)據(jù)庫)
然后我們雙擊button1
綁定webbrowser1的url地址
和頁面加載完成事件。
然后我們在頁面加載事件里讀取webbrowser的html內容這里我們簡單用正則去匹配
zhytools.downloadApp(.+);來讀取參數(shù)內容
我們運行一下程序看看
程序運行后我們在url地址輸入華為的應用市場頁面地址http://app.hicloud.com/
然后點擊確定按鈕
可以看到我們抓取了很多鏈接。我們可以將這些連接的參數(shù)分割存入我們的數(shù)據(jù)庫使用。
當然這里只是抓取了首頁的一部分連接。然后我們點擊游戲排行的更多
可以看到跳轉到新頁面我們又抓取了很多鏈接。
在點擊一下精品推薦試試
可以看到我們抓了很多當前頁面的下載鏈接。
一個簡易爬蟲基本形成。如果想要下載更多的資源。我們可以寫算法去自動針對頁面跳轉。爬更多的頁面。這樣即可存入更多的應用下載路徑啦。