所见即所得-基于Node.js的页面数据实践

摘要

数据抓取是企业信息化的根基和第一步,只有利用先进的技术作好了信息抓取工作,才能为信息化带来最大的价值。懂球帝高级开发工程师邓佳龙用五个字就概括了数据抓取的精髓。

嘉宾演讲视频回顾及PPT链接:http://t.cn/RnLosMH

我眼中的数据抓取

数据抓取,通俗叫法是“爬虫”。就是把非结构化的信息数据从网页中抓取出来,保存到结构化的数据库的过程。

能在页面上看到的数据就是能得到的数据,这就是我所说的“所见即所得”这五个字的含义。

数据抓取技术可以通过很多后台语言实现,比如PHP、JAVA等等,但是Node.js有它独特的优势。

知己知彼,百战不殆。数据抓取也有恶意攻击网站或盗取数据的情况。作为前端工程师,只有当你知道别人是如何抓取的时候,才能想办法去做防守。

页面抓取的三个步骤

1、获取数据。

2、从网页中提取并清洗出所需的数据。

3、落入存储当中。

使用Node.js进行数据抓取的优势

Node.js的无阻塞和事件驱动这两个特性可以大大提升抓取效率。

因为Javascript是一门前端语言,所以用它来做数据的提取和清洗有很大优势。

Node.js最近几年的社区活跃度比较高,可以用的工具和包也很多。

有一些数据会隐藏在JS脚本中,只能用Javascript来抓取。

案例分享——抓取球探足球数据

在球探足球的官网上有一些关于赛事比分的应用,如果这些数据要小编人工录入,至少要三个月。有了数据抓取技术,就变得很便捷高效。

首先抓取赛事数据,然后落地球队数据,再落地球员数据,根据赛事数据可以获取到赛程、比赛、赔率等数据。

足球里的赛程、赔率等信息都是非常重要的,而我们利用数据抓取技术可以轻易获得。

曾经填过的“坑”

有些网页如果用一些常规的数据请求方式不带useragent信息是无法正常访问的。所以在做数据抓取的时候最好带上useragent。

有些页面上的数据接口必须在头部中声明特定的referer才能获取数据。

部分网页和数据接口会有访问频次限制。我建议大家降低访问频次,不要过于规律。

一些网页和数据接口会出现转码问题。

有的网页和数据接口需要身份验证才能访问。那么就需要先做一个模拟登录,把一些cookie信息缓存下来,获取数据的时候再带上这些cookie信息。

获取数据异常状态需要兼容性处理和一定的重试机制。针对不同的网站机制也有所不同。

目标网站改版时需要一定的预警机制。

分享几个有用的包

Request——主要是用来获取数据。

Cheerio——用于转换和数据提取。

Co——把异步转化为同步的方式来写。

Async——做并发流程控制。

Mongoose——主要用于操纵MongoDB。

Sequelize——主要用于操纵MySQL。

Log4js——做日志记录。

Pm2——守护进程。

Icony-lito——转换代码。

今天就分享到这里,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2018-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

安卓耗电之谜:罪魁祸首竟是隐藏通信

简介 我们目前并不清楚为什么Android有这么多使用远程服务器进行隐藏通信的app,尤其是这些隐藏通信其实并没有被智能机主使用。我们知道app是从云端传入传出...

21490
来自专栏大数据和云计算技术

​大数据和云计算技术周报(第35期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

12920
来自专栏Kirito的技术分享

以Dubbo为例,聊聊如何为开源项目做贡献

Github 上有众多优秀的开源项目,大多数 IT 从业者将其当做了予取予求的工具库,遇到什么需求,先去 Github 搜一把,但有没有想过有一天自己也可以给开...

15130
来自专栏BestSDK

谷歌Flutter跨平台应用开发SDK,迎来首个发行预览版本

Google 刚刚放出了自家 Flutter 跨平台移动应用开发 SDK 的首个发布预览版本(Release Preview 1),如果你是一位需要同时兼顾 i...

18230
来自专栏云计算认知升级

【腾讯云的1001种玩法】十分钟轻松搞定云架构之一 :从上云开始

本文是 【十分钟轻松搞定云架构】的第一节:从上云开始,从这节开始,我们来一起学习云端架构。

336110
来自专栏SDNLAB

是时候让传统路由器在分支机构退役了之十大理由(十,九)

多年来,我们尽职尽责地升级了我们的路由器,因为没有多少选择。路由器不仅仅是企业网络的基础; 他们是企业网络。我们需要他们连接我们的办公室,商店和仓库。

15830
来自专栏IT大咖说

魅族大数据之用户洞察平台

摘要 魅族DMP(用户洞察平台),通过对三方受众数据的汇聚、清洗、智能运算,构建了庞大的精准人群数据中心,提供丰富的用户画像数据以及实时的场景识别力。对内:无缝...

45160
来自专栏BestSDK

深度解析——短视频SDK的前世今生

2016 年中国移动短视频用户数为 1.5 亿,今年预计会达到 2.4 亿,增长率高达 58.2%,可见短视频的热度在一直提升;近几年,短视频的生产模式在不断演...

1.4K70
来自专栏FreeBuf

合法练习黑客技术?这15个网站也许可以帮到你

俗话说得好,最好的防守就是进攻,而这句话同样适用于信息安全领域。接下来,我们将给大家介绍15个最新的网络安全网站。 无论你是开发人员、安全专家、审计人员、或者是...

36170
来自专栏杨建荣的学习笔记

从问题的处理方式感悟学习方法 (r4笔记第39天)

有时候当你碰到一些问题一筹莫展的时候,如果能够看到某个帖子的问题和你碰到的刚好一致,那种欣喜的感觉真是难以形容。 但是有些问题尽管发生的错误一致,处理的方式却不...

31850

扫码关注云+社区

领取腾讯云代金券