如何用.net制作一个简易爬虫抓取华为应用市场数据
公司最近要做一款手机,手机需要制作一个应用市场。那么问题来了,自己制作应用市场,数据从哪来呢?作为一个创业型公司。搜集数据变成为了难题。
于是突然想到能不能通过程序去抓取别人应用市场的数据……
那么我们一步一步的来看,如何抓取华为应用市场的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/
然后点击确定按钮
可以看到我们抓取了很多链接。我们可以将这些连接的参数分割存入我们的数据库使用。
当然这里只是抓取了首页的一部分连接。然后我们点击游戏排行的更多
可以看到跳转到新页面我们又抓取了很多链接。
在点击一下精品推荐试试
可以看到我们抓了很多当前页面的下载链接。
一个简易爬虫基本形成。如果想要下载更多的资源。我们可以写算法去自动针对页面跳转。爬更多的页面。这样即可存入更多的应用下载路径啦。
如何用.net制作一个简易爬虫抓取华为应用市场数据的更多相关文章
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- Python小爬虫——抓取豆瓣电影Top250数据
python抓取豆瓣电影Top250数据 1.豆瓣地址:https://movie.douban.com/top250?start=25&filter= 2.主要流程是抓取该网址下的Top25 ...
- php+phpquery简易爬虫抓取京东商品分类
这是一个简单的php加phpquery实现抓取京东商品分类页内容的简易爬虫.phpquery可以非常简单地帮助你抽取想要的html内容,phpquery和jquery非常类似,可以说是几乎一样:如果你 ...
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
我们通过上一篇了解了爬虫具体要实现的工作之后,我们分析得出的网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出 ...
- 用XMLHttpRequest制作一个简易ajax
概述 jquery退出历史舞台之后,我们怎么来发送ajax请求呢?可以用相关的库,也可以自己制作一个简易的ajax. 需要说明的是,我们使用的是XMLHttpRequest 2,它几乎兼容所有主流浏览 ...
- 【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务
实现一个简易爬虫&启动定时任务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://gith ...
- 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具
查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...
- 如何用python抓取js生成的数据 - SegmentFault
如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- Python爬虫----抓取豆瓣电影Top250
有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...
随机推荐
- 研发三维GIS系统笔记/实现wgs84投影-002
四叉树代码修改完善 原来的代码中,没有使用投影转换,直接使用的是世界坐标(单位是米), CELLQuadTree::CELLQuadTree( CELLTerrainInterface* pInter ...
- 每天5分钟复习OpenStack(五)CPU虚拟化
KVM 虚拟化之CPU 虚拟化存在是为了更高效的利用物理机的资源,而虚拟机技术主要是针对三大组件,分别是CPU虚拟化.存储虚拟化.网络虚拟化.下面我们分别介绍下三大组件的常用知识. CPU 虚拟化 1 ...
- BGP路由协议学习一
转载请注明出处: 1.BGP的特点: BGP使用TCP作为其传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新. BGP能够承载大批量的路由信息,能够支撑大规模网络. BGP提供了 ...
- Nodejs环境打包前端项目
Node.js 在Linux下安装和环境搭建/编译项目 安装nodejs:1.下载nodejs源码包 wget https://nodejs.org/dist/v14.16.0/node-v14.16 ...
- Util应用框架快速入门(4) - 集成测试开发入门
本文演示Util应用框架开发的项目中如何编写集成测试. 准备 完成 Web Api 快速入门,本文将在之前生成的示例项目上讲解集成测试的开发. 测试概述 自动化测试对于Util应用框架的开发非常重要, ...
- C++基础杂记(2)
将数组传入函数 禁止修改数组的值 函数的地址与函数的指针 函数的指针数组 函数的 static 与 inline 引用左值和引用传参 C++11 的数组 for 循环 64 位 Linux 操作系统中 ...
- 【慢SQL性能优化】 一条SQL的生命周期
一. 一条简单SQL在MySQL执行过程 一张简单的图说明下,MySQL架构有哪些组件和组建间关系,接下来给大家用SQL语句分析 例如如下SQL语句 SELECT department_id FROM ...
- git 添加/删除子模块
背景 在很多项目中经常会重复使用一些代码块, 例如按键处理, LED提示, modbus等等 在传统开发中, 我们经常是将一些代码写成独立的.c/.h模块. 但随着时间的推移我们经常需要根据一 些项目 ...
- easy ui 按钮图标样式合集
data-options="iconCls:'icon-search'" 可替换以下值 icon-add icon-print icon-mini-add icon-cvs ico ...
- Codeforces Round #697 (Div. 3) A~E题解
写在前边 状态及其不佳,很累很困,还好\(unrated\)了 链接:Codeforces Round #697 (Div. 3) A. Odd Divisor 链接:A题链接 题目大意: 判断一个数 ...