公司最近要做一款手机,手机需要制作一个应用市场。那么问题来了,自己制作应用市场,数据从哪来呢?作为一个创业型公司。搜集数据变成为了难题。
于是突然想到能不能通过程序去抓取别人应用市场的数据……
那么我们一步一步的来看,如何抓取华为应用市场的APK信息。
首先打开华为官网
看到如下页面。然后我们在谷歌浏览器中按F12查看一下下载是否是明文链接
随便选择一个 ,右键查看下载的属性。
在这里我们可以看见a标签的onclick是一个js方法zhytools.downloadApp();
方法体大致有几个参数,可能分别是 文件ID(唯一码)、文件名称、文件所属类别(华为自己的分类如:上升最快、首页等等)、这个数量也可能是某个id、文件类别(文件所属的应用分类)、文件下载路径、文件版本、最后个好像默认都是1。
好了我们看到一个下载方法有这么多参数。
然后我们可以打开其中的下载地址看看。
其中下载地址是这一段 。在浏览器直接输入这个地址
则弹出了APK下载信息。好了。那么我们只要存储对于的地址。放入我们的应用市场接口之中。那么我们的应用市场的数据将可以来源与华为应用市场了。
好了 我们开始实战!
首先用vs创建一个windows应用程序。
输入程序名字Crawler
点击确定
首先给 form的size改成1280*768 (看着舒服点)
然后我们分别拖一个textbox1 作为网址输入地址。
一个webbrowser用来获取网页信息
一个按钮用来绑定webbrowser
一个textbox2 的多行文本框 来显示抓取信息。
(这里先简单展示。可做优化存入数据库)
然后我们双击button1
绑定webbrowser1的url地址
和页面加载完成事件。
然后我们在页面加载事件里读取webbrowser的html内容这里我们简单用正则去匹配
zhytools.downloadApp(.+);来读取参数内容
我们运行一下程序看看
程序运行后我们在url地址输入华为的应用市场页面地址http://app.hicloud.com/
然后点击确定按钮
可以看到我们抓取了很多链接。我们可以将这些连接的参数分割存入我们的数据库使用。
当然这里只是抓取了首页的一部分连接。然后我们点击游戏排行的更多
可以看到跳转到新页面我们又抓取了很多链接。
在点击一下精品推荐试试
可以看到我们抓了很多当前页面的下载链接。
一个简易爬虫基本形成。如果想要下载更多的资源。我们可以写算法去自动针对页面跳转。爬更多的页面。这样即可存入更多的应用下载路径啦。