- ?
学会使用PowerBI/Excel批量采集网页数据
山彤
展开
前面介绍PowerBI数据获取的时候,曾举了一个从网页中获取数据的例子,但当时只是爬取了其中一页数据,这篇文章来介绍如何用PowerBI批量采集多个网页的数据。
本文以智联招聘网站为例,采集工作地点在上海的职位发布信息。
下面是详细操作步骤:
(一)分析网址结构
打开智联招聘网站,搜索工作地点在上海的数据,
下拉页面到最下面,找到显示页码的地方,点击前三页,网址分别如下,
http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=1http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=2http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=3
可以看出最后一个数字就是页码的ID,是控制分页数据的变量。
(二)使用PowerBI采集第一页的数据
打开PowerBI Desktop,从网页获取数据,从弹出的窗口中选择【高级】,根据上面分析的网址结构,把除了最后一个页码ID的网址输入第一行,页码输入第二行,
从URL预览中可以看出,已经自动把上面两行的网址合并到一起;这里分开输入只是为了后面更清晰的区分页码变量,其实直接输入全网址也是一样可以操作的。
(如果页码变量不是最后一位,而是在中间,应该分三行输入网址)
点击确定后,发现出来很多表,
从这里可以看出,智联招聘网站上每一条招聘信息都是一个表格,不用管它,任意选择一个表格,比如勾选Table0,点击编辑进入Power Query编辑器。
在PQ编辑器中直接删除掉【源】之后的所有步骤,然后展开数据,并把前面没有的几列数据删除。
这样第一页的数据就采集过来了。然后对这一页的数据进行整理,删除掉无用信息,添加字段名,可以看出一页包含60条招聘信息。
这里整理好第一页数据以后,下面进行采集其他页面时,数据结构都会和第一页整理后的数据结构一致,采集的数据可以直接拿来用;这里不整理也没关系,可以等到采集所有网页数据后一起整理。
如果要大批量的抓取网页数据,为了节省时间,对第一页的数据可以先不整理,直接进入下一步。
(三)根据页码参数设置自定义函数
这是最重要的一步。
还是刚才第一页数据的PQ编辑器窗口,打开【高级编辑器】,在let前输入:
(p as number) as table =>
并把let后面第一行的网址中,&后面的"1"改为(这就是第二步使用高级选项分两行输入网址的好处):
(Number.ToText(p))
更改后【源】的网址变为:
"http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p="&(Number.ToText(p)))),
确定以后,刚才第一页数据的查询窗口直接变成了自定义函数的输入参数窗口,Table0表格也变成了函数的样式。为了更直观,把这个函数重命名为Data_Zhaopin.
到这里自定义函数完成,p是该函数的变量,用来控制页码,随便输入一个数字,比如7,将抓取第7页的数据,
输入参数只能一次抓取一个网页,要想批量抓取,还需要下面这一步。
(四)批量调用自定义函数
首先使用空查询建立一个数字序列,如果想抓取前100页的数据,就建立从1到100的序列,在空查询中输入
={1..100}
回车就生成了从1到100的序列,然后转为表格。gif操作图如下:
然后调用自定义函数,
在弹出的窗口中点击【功能查询】下拉框,选择刚才建立的自定义函数Data_Zhaopin,其他都按默认就行,
点击确定,就开始批量抓取网页了,因为100页数据比较多,耗时5分钟左右,这也是我第二步提前数据整理造成的后果,导致抓取比较慢。展开这一个表格,就是这100页的数据,
至此,批量抓取智联招聘100页的信息完成,上面的步骤看起来很多,实际上熟练掌握以后,10分钟左右就可以搞定,最大块的时间还是最后一步进行抓取数据的过程比较耗时。
网页的数据是不断更新的,在操作完以上的步骤之后,在PQ中点击刷新,可以随时一键提取网站实时的数据,一次做好,终生受益!
以上主要使用的是PowerBI中的Power Query功能,在可以使用PQ功能的Excel中也是可以同样操作的。
当然PowerBI并不是专业的爬取工具,如果网页比较复杂或者有防爬机制,还是得用专业的工具,比如R或者Python。在用PowerBI批量抓取某网站数据之前,先尝试着采集一页试试,如果可以采集到,再使用以上的步骤,如果采集不到,就不用再耽误工夫了。
现在就打开PowerBI/,尝试着抓取你感兴趣的网站数据吧。
- ?
六大主流大数据采集平台架构分析
平复
展开
随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:
Apache Flume Fluentd Logstash Chukwa Scribe Splunk Forwarder
大数据平台与数据采集
任何完整的大数据平台,一般包括以下的几个过程:
数据采集–>数据存储–>数据处理–>数据展现(可视化,报表和监控)
其中,数据采集是所有数据系统必不可少的,随着大数据越来越被重视,数据采集的挑战也变的尤为突出。这其中包括:
我们今天就来看看当前可用的六款数据采集的产品,重点关注它们是如何做到高可靠,高性能和高扩展。
1、Apache Flume
Flume 是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。
Flume最初是由Cloudera的工程师设计用于合并日志数据的系统,后来逐渐发展用于处理流数据事件。
Flume设计成一个分布式的管道架构,可以看作在数据源和目的地之间有一个Agent的网络,支持数据路由。
每一个agent都由Source,Channel和Sink组成。
Source
Source负责接收输入数据,并将数据写入管道。Flume的Source支持HTTP,JMS,RPC,NetCat,Exec,Spooling Directory。其中Spooling支持监视一个目录或者文件,解析其中新生成的事件。
Channel
Channel 存储,缓存从source到Sink的中间数据。可使用不同的配置来做Channel,例如内存,文件,JDBC等。使用内存性能高但不持久,有可能丢数据。使用文件更可靠,但性能不如内存。
Sink
Sink负责从管道中读出数据并发给下一个Agent或者最终的目的地。Sink支持的不同目的地种类包括:HDFS,HBASE,Solr,ElasticSearch,File,Logger或者其它的Flume Agent。
Flume在source和sink端都使用了transaction机制保证在数据传输中没有数据丢失。
Source上的数据可以复制到不同的通道上。每一个Channel也可以连接不同数量的Sink。这样连接不同配置的Agent就可以组成一个复杂的数据收集网络。通过对agent的配置,可以组成一个路由复杂的数据传输网络。
配置如上图所示的agent结构,Flume支持设置sink的Failover和Load Balance,这样就可以保证即使有一个agent失效的情况下,整个系统仍能正常收集数据。
Flume中传输的内容定义为事件(Event),事件由Headers(包含元数据,Meta Data)和Payload组成。
Flume提供SDK,可以支持用户定制开发:
Flume客户端负责在事件产生的源头把事件发送给Flume的Agent。客户端通常和产生数据源的应用在同一个进程空间。常见的Flume 客户端有Avro,log4J,syslog和HTTP Post。另外ExecSource支持指定一个本地进程的输出作为Flume的输入。当然很有可能,以上的这些客户端都不能满足需求,用户可以定制的客户端,和已有的FLume的Source进行通信,或者定制实现一种新的Source类型。
同时,用户可以使用Flume的SDK定制Source和Sink。似乎不支持定制的Channel。
2、Fluentd
Fluentd是另一个开源的数据收集框架。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。它的可插拔架构,支持各种不同种类和格式的数据源和数据输出。最后它也同时提供了高可靠和很好的扩展性。Treasure Data, Inc 对该产品提供支持和维护。
Fluentd的部署和Flume非常相似:
Fluentd的架构设计和Flume如出一辙:
Fluentd的Input/Buffer/Output非常类似于Flume的Source/Channel/Sink。
Input
Input负责接收数据或者主动抓取数据。支持syslog,http,file tail等。
Buffer
Buffer负责数据获取的性能和可靠性,也有文件或内存等不同类型的Buffer可以配置。
Output
Output负责输出数据到目的地例如文件,AWS S3或者其它的Fluentd。
Fluentd的配置非常方便,如下图:
Fluentd的技术栈如下图:
FLuentd和其插件都是由Ruby开发,MessgaePack提供了JSON的序列化和异步的并行通信RPC机制。
Cool.io是基于libev的事件驱动框架。
FLuentd的扩展性非常好,客户可以自己定制(Ruby)Input/Buffer/Output。
Fluentd从各方面看都很像Flume,区别是使用Ruby开发,Footprint会小一些,但是也带来了跨平台的问题,并不能支持Windows平台。另外采用JSON统一数据/日志格式是它的另一个特点。相对去Flumed,配置也相对简单一些。
3、Logstash
Logstash是著名的开源数据栈ELK (ElasticSearch, Logstash, Kibana)中的那个L。
Logstash用JRuby开发,所有运行时依赖JVM。
Logstash的部署架构如下图,当然这只是一种部署的选项。
一个典型的Logstash的配置如下,包括了Input,filter的Output的设置。
几乎在大部分的情况下ELK作为一个栈是被同时使用的。所有当你的数据系统使用ElasticSearch的情况下,logstash是首选。
4、Chukwa
官网:https://chukwa.apache.org/
Apache Chukwa是apache旗下另一个开源的数据收集平台,它远没有其他几个有名。Chukwa基于Hadoop的HDFS和Map Reduce来构建(显而易见,他用Java来实现),提供扩展性和可靠性。Chukwa同时提供对数据的展示,分析和监视。很奇怪的是它的上一次 github的更新事7年前。可见该项目应该已经不活跃了。
Chukwa的部署架构如下:
Chukwa的主要单元有:Agent,Collector,DataSink,ArchiveBuilder,Demux等等,看上去相当复杂。由于该项目已经不活跃,我们就不细看了。
5、Scribe
代码托管:https://github/facebookarchive/scribe
Scribe是Facebook开发的数据(日志)收集系统。已经多年不维护,同样的,就不多说了。
6、Splunk Forwarder
以上的所有系统都是开源的。在商业化的大数据平台产品中,Splunk提供完整的数据采金,数据存储,数据分析和处理,以及数据展现的能力。
Splunk是一个分布式的机器数据平台,主要有三个角色:
Search Head负责数据的搜索和处理,提供搜索时的信息抽取。
Indexer负责数据的存储和索引 Forwarder,负责数据的收集,清洗,变形,并发送给Indexer
Splunk内置了对Syslog,TCP/UDP,Spooling的支持,同时,用户可以通过开发 Input和Modular Input的方式来获取特定的数据。在Splunk提供的软件仓库里有很多成熟的数据采集应用,例如AWS,数据库(DBConnect)等等,可以方便的从云或者是数据库中获取数据进入Splunk的数据平台做分析。
这里要注意的是,Search Head和Indexer都支持Cluster的配置,也就是高可用,高扩展的,但是Splunk现在还没有针对Farwarder的Cluster的功能。也就是说如果有一台Farwarder的机器出了故障,数据收集也会随之中断,并不能把正在运行的数据采集任务Failover到其它的 Farwarder上。
总结
我们简单讨论了几种流行的数据收集平台,它们大都提供高可靠和高扩展的数据收集。大多平台都抽象出了输入,输出和中间的缓冲的架构。利用分布式的网络连接,大多数平台都能实现一定程度的扩展性和高可靠性。
其中Flume,Fluentd是两个被使用较多的产品。如果你用ElasticSearch,Logstash也许是首选,因为ELK栈提供了很好的集成。Chukwa和Scribe由于项目的不活跃,不推荐使用。
Splunk作为一个优秀的商业产品,它的数据采集还存在一定的限制,相信Splunk很快会开发出更好的数据收集的解决方案。
- ?
升级万亿机械加工产业,「智能云科」要做机加工领域的工业互联网平台
鹿莹芝
展开
2017年中国机加工市场规模达8万亿元,其中1000家的机床生产企业,80万家机床使用企业。庞大的机加工市场同时存在着很大痛点,高端控制系统被国外垄断、客户分散、订单不稳定、设备闲置率高、同质化竞争利润低、人力成本高等,国内的加工制造业已经在外流,行业急需升级。
智能云科是一家聚焦机加工领域的工业互联网平台公司,由沈阳机床联合神州控股、光大金控于2015年在上海共同投资设立。
工业互联网平台有很多家在做,可以从以下几个关键维度去快速理解智能云科在做的事情。
行业方面,智能云科聚焦在机加工领域。服务对象,核心是上游机床厂商、下游加工厂。服务内容,从设备、生产数据联网,到产能交易、设备运维、租赁、供应链金融、工业APP等产业全生命周期服务。
有了框架,下面来具体看看,智能云科的iSESOL工业互联网平台是怎么做的,如何产生价值。
可以把智能云科的服务粗略分为两个大类:数据采集联网、数据应用。
数据采集联网:不止是采集,还能直接产生客户价值
朱志浩曾带领团队历时7年,于2014年推出了自主研发的机床控制系统i5,并于同年开始销售搭载i5系统的i5智能机床。
“这件事情的意义,类似于将传统手机升级为智能手机,智能机床通过i5系统,可以快速开发上层应用,从而将宝贵的工业机理、经验持续沉淀下来”朱志浩告诉36氪。
此前,机床厂商做的是一次性买卖生意,现在通过智能机床,能持续提供增值服务,例如零部件的故障预测,帮助客户及时更换,避免生产故障。这样,设备厂商能够从设备使用全周期的角度做这门生意,提高附加值,促使不断提高产品、服务质量,产生良性循环。
更进一步,朱志浩希望能把此项能力开放给市面上更多设备制造厂商。2017年,团队将i5机床控制系统进行独立封装,推出i5OS。可以将i5理解成苹果手机专属的iOS系统,而i5OS则是面向所有设备厂商的Android系统。
智能云科的数据采集联网业务,对于i5智能机床,或者搭载i5OS的设备,可以通过标准接口协议快速获取丰富的加工数据,对于其他机床,智能云科提供iSESOL BOX产品,进行数据采集和联网。
与市面大多数据采集联网设备不同,iSESOL BOX自带操作系统和边缘计算能力,可以直接支持APP应用,如耗电优化、刀具切削优化、温度补偿等。客户付出了连接成本,可以直接获得相应价值,不是为了连接而连接,从而增强客户买单动力。
以上说的是设备层面的数据采集和联网问题,而对于设备的使用方加工厂,智能云科提供iSESOL WIS产品帮助中小微加工厂完成企业信息化。
iSESOL WIS可以理解为轻量化的云MES系统,甚至不需要接入数据采集硬件,直接通过移动设备录入信息方式,将生产过程和结果信息化、可视化。
“工厂老板最关心的是生产情况如何,哪些订单要交货,已经完成了多少,是否有风险。WIS系统不做很复杂的东西,就聚焦在客户最核心的痛点,让他们用得起。”朱志浩告诉36氪。
总结来看,智能云科通过i5 OS、iSESOL BOX、iSESOL WIS产品,将设备和生产数据采集联网,并在连接的同时,直接产生了客户价值。
产业生态应用:基于真实数据,提供精准服务
有了数据,联了网,这只是开始。
智能云科提供了工业APP、产能交易、设备运维、租赁、供应链金融等一系列产业生态应用服务。
工业APP今年很火热,在朱志浩看来,工业互联网平台单纯的汇聚APP没有意义,一定要有承载体。对智能云科来说,承载体就是i5 OS和iSESOL BOX产品,能够与底层制造装备紧密对接,向上为APP提供开发平台。设备商、工厂、研究机构,都可以将自己对于工业机理的理解,以APP的方式沉淀下来,借助平台轻量化、低成本的推广到机加工行业,获取回报。
基于工厂真实透明的生产数据,可以形成较精准的工厂画像,包括每家工厂擅长加工哪些东西,产能情况,需要哪些工业品,经营状况等。智能云科可以更精准的对接订单加工方和需求方,对接工业品的供应方和购买方,对接金融机构和中小微加工厂等。
对于设备厂商来说,基于设备数据,可以进行远程运维、分时租赁等服务,降本增效,创新商业模式。
行业落地和挑战
智能云科的整套服务覆盖面很广,要怎么逐步实现呢?
朱志浩告诉36氪,智能云科从2015年成立,先用了3年时间,把核心产品和整套商业模式架构搭建起来,并通过i5数控机床进行了内部试验验证。当前阶段以及2019年要重点实现社会化落地,先以iSESOL BOX和iSESOL WIS为核心业务,把数据问题解决,再不断延伸产业生态服务。
官方信息显示,截至2018年11月,iSESOL服务范围已涵盖26省、161市,服务企业客户3000余家,已连接智能设备22000多台,累计服务机时5000多千时,覆盖汽车刹车盘、铝雕、消费电子、珠宝等行业。
36氪还了解到,智能云科目前正在准备A轮融资,总金额在亿元以上。
目前,国内已有数十家工业互联网平台公司,包括树根互联、徐工信息、海尔、富士康、智能云科等工业背景公司,浪潮、运营商等ICT巨头,阿里等互联网巨头,用友等IT公司,以及众多科技创业公司等。
智能云科的特点是基于深厚的机加工装备背景,聚焦机加工垂直领域。相比于通用平台,能从机床内部机理入手,更深入的挖掘数据价值。同时具备机加工行业较广泛的客户基础、市场基础(已销售3万台i5智能机床)。
当然,智能云科也面临着很多挑战,包括其i5 OS以及iSESOL BOX能多快多广的覆盖到行业客户,实现工业互联网平台的构建。以及其他设备厂商的接受意愿,是否有竞争顾虑,是否能接受智能机床的新模式等。
——————
我是36氪记者陈绍元,关注物联网、AI、科技,交流或寻求报道(不收费)加微信:963757163,请注明公司、职位、姓名,否则不加。
- ?
一招教你把全网数据收入囊中
Haile
展开
我终于被放出来写文章了,在这个喜大普奔的时刻,我要给关注我的朋友们一点小小的福利,你们准备好了吗?
关于采集软件呢,对于小白来讲真是头大的说,小编刚接触的时候也是一头雾水,所以机智的小编我准备给大家来点干货(毕竟到冬眠的时候得屯点粮,干货什么的最实在了,吼吼吼~)。
小编综合了一下网上的回答,以一个从小透明到略懂者角度通俗易懂的来解释一下这几个问题好了,我相信你们不会嫌弃我话多的~~~
对于门外汉来说被问的频率最高的问题就是:什么是采集软件?采集软件有什么用?为什么网上有的东西还需要用采集软件采集?
采集软件嘛其实就是你们字面理解的意思,通过某个具有采集功能的软件,进入到软件中,然后通过某种手段,对某些网页或者网站内的信息进行采集(我不会跟你们说在这个信息时代大数据吧啦吧啦的,那太官方了,小编可是有着很接地气的小倔强的)。
那他有什么用呢?采集软件的作用就是,批量的格式化的采集到你想要的互联网上能看到的所有的公开信息。那你接着一定会问我为什么互联网上有还要用采集软件采集啊?那你肯定没有认真看我前面那句话,因为采集软件可以批量采集格式化的信息啊,而且导出来就是Excel啊,多方便啊有木有,是不是被机智的我吓到了,其实说得简单一点呢就是你用一天时间所浏览的网页里面有用的内容,可能用了采集软件几分钟就已经帮你整理出了一个Excel表格,让你简单明了的看完你想看的一切,是不是6到飞起呀~
对于有经验的了解过采集软件的朋友来说呢,可能纠结的就是哪个采集软件好用?以及某些平台比如某宝,某东,某猫的数据可不可以采集啊?有没有什么简单的方法啊?
采集软件有好多好多,宣传推广力度比较大的,像火车头啊,八爪鱼啊,发源地啊,集搜客啊,当然还有我们稳步前进的前嗅的爬虫ForeSpider,每个都有它的优缺点,不能说哪个是最完美的,写对比吧好像不太能保持公平公正,所以小编还是决定做个自我介绍。
ForeSpider呢是公司大佬——我们伟大的Leader自主研发的一款采集软件,同时还研发出了专属的KSP语言(此处应该有掌声)
由于ForeSpider软件是用c++开发的,所以采集速度非常快;定制化需求不需要改变软件本身;通过可视化脚本操作即可完成;导出的数据是大规模且规范化的;同时自带挖掘和分析功能。
但是因为功能强大,为了使采集的内容更加准确高效所以也加入了一些专业性的手段,学习起来呢有一定的门槛,不过没关系,无论你们遇到什么样的问题和困难请联系我们的客服,小编可以用身家性命来担保,不管你们有什么问题客服的小哥哥、小姐姐们都会耐心解答的哦~
至于那些某宝,某东和某猫的信息是不是都是可以采集呢,答案当然是必须的。还有啊小编要说的是要个简单的方法不如找个实用的办法,大家好才是真的好。。。诶,跑偏了~
那对于资深的采集软件的朋友们,有什么问题呢。。。。我觉得应该就是挑问题了,所以各位采集软件界的大佬们,小编在这里诚心请求大家给予小编充分的包容和理解的同时如果大佬们发现我们前嗅的Forespider软件中有什么问题,有什么有必要添加的功能也请及时反馈给我们,说不定下次更新软件的时候你就发现你提出的新功能出现在我们的软件里了呢~
- ?
竞争对手的全网数据收集与监控分析
邢愫
展开
上次,在可量化的搜索流量一文中,简单的谈了谈分析自己的站内流量,这次与大家分享下分析别人网站的信息与方法,大家都知道,越是高端的竞争,就越是需要对手,没有对手的生存让人恐惧和茫然。
互联网上存在着大量的信息,我们需要了解我们的用户在找什么?他们想要什么?有不少聪明的站长去抓搜索引擎的相关搜索的关键词去了解行业用户的搜索需求,虽然有价值,但也同样束缚了思想,为什么这么说?关键词相关词每次十个,抓再多也是瓶颈工作,而且这些词的内容组织要求更高(因为已经被很多人知道),这些词短期内更新较少,这样一来,需求就产生了瓶颈,在一些交流或培训时,确实是有遇到这样的问题,我们该怎么做?
在日常的网站运营中,我通常会用到这样一个工具“火车头采集器”抓取别人网站的文章,但和很多人的目的不同的是,自己抓文章不是要入库,而是要通过这些数据分析竞争对手。通过数据的分析,我可以取得大量或者说源源不禁的需求,更重要的是,网站的日常运营体现在网页上,我们拿到了对手的网页,就看到了他们的工作;例如,你可以知道他们的工作方向、栏目建设重点甚至大致的人员配比等等,当然,我们还可以将这种逻辑用到舆情检测、外链建设、策略依据等任务中去。
思路的开阔对规模化运作有帮助,在日常,我始终用这样的话提醒自己;那么,通常我可能会做一些这样的事情:
1.去查看竞争对手的招聘信息,别指望我是要去帮他,而是我可以通过分析他们的人才需求,了解他们的近期工作内容和发展策略;
2.去解析他们的24小时的收录内容及数量,建立饼图及曲线,也许你可以有意外发现(比如:你可能会发现今天他们有个编辑请假了,呵呵)了解他们的内容建设方向和搜索流量支点;
3.去查看谷歌趋势,了解他们的流量曲线变化(感觉谷歌给的是pv量);
4.通过提交竞争对手的域名到linkhelper,记录他们的收录变化(大致);
5.通过分析监控他们的关键排名,掌握他们的搜索引擎表现;
6.通过监控他们的链接猫文本、源站点,分析他们的seo重点及策略;
7.通过分析他们的投放关键词,了解sem投放数量和成本;
8.通过监控他们的品牌词,了解口碑传播情况和渠道……
总之,在我心中,永远有两个任务:思考如何监控、拓展、分析,另一个则是如何把这套东西用在竞争对手身上,以此来帮助自己做以上三点!
运营的瓶颈是思路的瓶颈,不要太纠结你那些搜索词的拓展,想办法将自己的思路拓展;分析竞争对手,是整个行业的从业者帮你在思考,因为你关心的他们同样在关心,你思考的他们也在思考,你要做的就是想办法拿到这些,并且比他们做的更加细致和接近极致。
以上实战心得,愚见,欢迎拍砖!
- ?
携程用户数据采集与分析系统
花茎
展开
一、携程实时用户数据采集系统设计实践
随着移动互联网的兴起,特别是近年来,智能手机、pad等移动设备凭借便捷、高效的特点风靡全球,同时各类APP的快速发展进一步降低了移动互联网的接入门槛,越来越多的网民开始从传统PC转移至移动终端上。但传统的基于PC网站和访问日志的用户数据采集系统已经无法满足实时分析用户行为、实时统计流量属性和基于位置服务(LBS)等方面的需求。
我们针对传统用户数据采集系统在实时性、吞吐量、终端覆盖率等方面的不足,分析了在移动互联网流量剧增的背景下,用户数据采集系统的需求,研究在多种访问终端和多种网络类型的场景下,用户数据实时、高效采集的方法,并在此基础上设计和实现实时、有序和健壮的用户数据采集系统。此系统基于Java NIO网络通信框架(Netty)和分布式消息队列(Kafka)存储框架实现,其具有实时性、高吞吐、通用性好等优点。
1、技术选型和设计方案:
一个典型的数据采集分析统计平台,对数据的处理,主要由如下五个步骤组成:
图1、数据平台处理流程
其中,数据采集步骤是最核心的问题,数据采集是否丰富、准确和实时,都直接影响整个数据分析平台的应用的效果。本论文关注的步骤主要在数据采集、数据传输和数据建模存储这三部分。
为满足数据采集服务实时、高效性、高吞吐量和安全性等方面的要求,同时能借鉴互联网大数据行业一些优秀开源的解决方案,所以整个系统都将基于Java技术栈进行设计和实现。整个数据采集分析平台系统架构如下图所示:
图2(数据采集分析平台系统架构)
其中整个平台系统主要包括以上五部分:客户端数据采集SDK以Http(s)/Tcp/Udp协议根据不同的网络环境按一定策略将数据发送到Mechanic(UBT-Collector)服务器。服务器对采集的数据进行一系列处理之后将数据异步写入Hermes(Kafka)分布式消息队列系统。为了关联业务服务端用户业务操作埋点、日志,业务服务器需要获取由客户端SDK统一生成的用户标识(C-GUID),然后业务服务器将用户业务操作埋点、日志信息以异步方式写入Hermes(Kafka)队列。最后数据消费分析平台,都从Hermes(Kafka)中消费采集数据,进行数据实时或者离线分析。其中Mechanic(UBT-Collector)系统还包括对采集数据和自身系统的监控,这些监控信息先写入Hbase集群,然后通过Dashboard界面进行实时监控。
(1)基于NIO的Netty网络框架方案
要满足前面提到的高吞吐、高并发和多协议支持等方面的要求。我们调研了几种开源异步IO网络服务组件(如Netty、MINI、xSocket),用它们和NginxWeb服务器进行了性能对比,决定采用Netty作为采集服务网络组件。下面对它进行一些概要介绍:Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。
图3(Netty框架内部组件逻辑结构)
Netty的优点有:
a、功能丰富,内置了多种数据编解码功能、支持多种网络协议。
b、高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳。
c、可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。
d、易用性,API使用简单。
e、经过了许多商业应用的考验,在互联网、网络游戏、大数据、电信软件等众多行业得到成功商用。
Netty采用了典型的三层网络架构进行设计,逻辑架构图如下:
图4(Netty三层网络逻辑架构)
第一层:Reactor通信调度层。该层的主要职责就是监听网络的连接和读写操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,再由Pipeline充当的职责链来进行后续的处理。
第二层:职责链Pipeline层。负责事件在职责链中有序的向前(后)传播,同时负责动态的编排职责链。Pipeline可以选择监听和处理自己关心的事件。
第三层:业务逻辑处理层,一般可分为两类:a. 纯粹的业务逻辑处理,例如日志、订单处理。b. 应用层协议管理,例如HTTP(S)协议、FTP协议等。
我们都知道影响网络服务通信性能的主要因素有:网络I/O模型、线程(进程)调度模型和数据序列化方式。
在网络I/O模型方面,Netty采用基于非阻塞I/O的实现,底层依赖的是JDKNIO框架的Selector。
在线程调度模型方面,Netty采用Reactor线程模型。常用的Reactor线程模型有三种,分别是:
a、Reactor单线程模型:Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。对于一些小容量应用场景,可以使用单线程模型。
b、Reactor多线程模型:Rector多线程模型与单线程模型最大的区别就是有一组NIO线程处理I/O操作。主要用于高并发、大业务量场景。
c、主从Reactor多线程模型:主从Reactor线程模型的特点是服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。利用主从NIO线程模型,可以解决一个服务端监听线程无法有效处理所有客户端连接的性能不足问题。Netty线程模型并非固定不变的,它可以支持三种Reactor线程模型。
在数据序列化方面,影响序列化性能的主要因素有:
a、序列化后的码流大小(网络带宽占用)。
b、序列化和反序列化操作的性能(CPU资源占用)。
c、并发调用时的性能表现:稳定性、线性增长等。
Netty默认提供了对GoogleProtobuf二进制序列化框架的支持,但通过扩展Netty的编解码接口,可以实现其它的高性能序列化框架,例如Avro、Thrift的压缩二进制编解码框架。
通过对Netty网络框架的分析研究以及对比测试(见后面的可行性分析测试报告)可判断,基于Netty的数据采集方案能解决高数据吞吐量和数据实时收集的难点。
》》点击阅读全文
- ?
QQ数据采集软件-QQ营销必备
盖恩斯伯勒
展开
QQ数据采集器-QQ营销必备工具
导语
现在是大数据时代,无论做什么营销都需要用到数据。数据是根本,数据能引导你的营销思维。做QQ营销同样需要大量的精准数据,今天小编为大家介绍一款QQ数据采集软件,这款软件既可以采集精准客户QQ,同时也可以采集精准客户QQ群以及QQ群成员。
软件功能特点
⊙支持按关键词采集精准客户qq
⊙支持自动检测所采集好友是否为单双向好友
⊙支持自动检测所采集qq是否开通临时会话功能
⊙支持自动识别qq所在城市、性别。年龄
⊙支持按关键词采集精准客户qq群
⊙支持自动筛选出群主qq
⊙支持自动检测是否可以直接添加qq群
⊙支持以文本文档格式导出qq群
⊙支持采集qq附近的人(全国定位)
⊙支持采集本地好友和群
⊙支持采集空间qq
⊙支持采集微博听众
⊙支持采集企业qq
⊙支持论坛qq采集
软件功能效果展示
易推客营销软件
- ?
2018年最值得推荐的6款大数据采集工具
果ル
展开
数据肯定是无价的。但分析数据并非易事,因为结果越准确,成本就越高。鉴于数据急剧增长,需要一个过程来提供有意义的信息,最终变成实用的洞察力。
数据挖掘是指这个过程:在庞大数据集当中发现模式,将它转换成有效的信息。该技术利用特定的算法、统计分析、人工智能和数据库系统,从庞大数据集中提取信息,并转换成易于理解的形式。本文介绍了广泛用于大数据行业的6种综合数据挖掘工具。
1. Rapid Miner
Rapid Miner是一个数据科学软件平台,为数据准备、机器学习、深度学习、文本挖掘和预测分析提供一种集成环境。它是领先的数据挖掘开源系统之一。
该程序完全用Java编程语言编写。该程序提供了一个选项,以便用户试用大量可任意嵌套的操作符,这些操作符在XML文件中有详细说明,可由Rapid Miner的图形用户界面来构建。
2. Oracle Data Mining
它是Oracle高级分析数据库的代表。市场领先的公司用它最大限度地发掘数据的潜力,做出准确的预测。该系统配合强大的数据算法,锁定最佳客户。
此外,它可识别异常情况和交叉销售机会,让用户能够根据需要运用不同的预测模型。此外,它以所需的方式定制客户画像。
3. IBM SPSS Modeler
说到大规模项目,IBM SPSS Modeler最适合。在这个建模器中,文本分析及其最先进的可视化界面极具价值。它有助于生成数据挖掘算法,基本上不需要编程。
它可广泛用于异常检测、贝叶斯网络、CARMA、Cox回归以及使用多层感知器和反向传播学习的基本神经网络。
4. KNIME
Konstanz Information Miner是一个开源数据分析平台。你可以迅速在其中部署、扩展和熟悉数据。在商业智能界,KNIME号称是有助于为毫无经验的用户提供预测智能的平台。
此外,数据驱动的创新系统有助于发掘数据潜力。此外,它包括数千个模块和随时可用的示例以及一大批集成的工具和算法。
5. Python
Python是一种免费的开源语言,因易用性常常与R相提并论。与R不同,Python学起来往往很容易上手,易于使用。许多用户发现可以在几分钟内开始构建数据,并进行极其复杂的亲和度分析。
只要你熟悉变量、数据类型、函数、条件语句和循环等基本编程概念,最常见的业务用例数据可视化就很简单。
6.火车采集器
火车采集器由合肥乐维信息技术有限公司开发,是一款专业的网络数据采集/信息挖掘处理软件,通过灵活的配置,可以很轻松迅速地从网页上抓取结构化的文本、图片、文件等资源信息,可编辑筛选处理后选择发布到网站后台,各类文件或其他数据库系统中。
- ?
前嗅:手把手教你数据采集
无色彩
展开
ForeSpider 前嗅:手把手教你数据采集
ForeSpider是一款非常好用的数据采集软件,因为属于专业性工具,除了帮助文档外很少有使用教程。所有有很多人在使用的过程中遇到问题难以解决,今天给大家介绍ForeSpider数据采集系统的使用教程,希望能对大家的工作有所帮助。
教程的示例网站是大众点评,要得到50页内所有医院名称,该医院评论总数,医院总体星级,各项评分,医院评论的用户名,评论内容,评论时间,用户点评星级,获赞数量和回应数量。
首先我们先新建一个频道,我给它命名为大众点评,然后在频道配置里输入我们想要爬取数据的网址,需要在频道配置处输入想要得到数据的网址,大众点评需要开启cookie,从右面可以开启,网站不同有的不需要,视情况而定。 现在默认模板(1)就是我们要的网站页面,鼠标放在医院标题处如图,从左下角能看到医院的网址链接。
现在点一下右上角的采集预览,我们能得到整个页面的所有网页链接,下拉滚动条到这个位置就会发现跟上图相同格式的链接,这就是我们需要的所有医院的链接。
我们用不到的需要过滤一下,可以通过地址过滤和标题过滤方法筛选。点击软件右上角模板抽取配置里面的链接抽取,里面有地址过滤和标题过滤两个选项,点击地址过滤,软件右下角如图:
过滤规则选择包含,过滤串内输入想要得到的医院链接,后面这串数字我们用“\d”表示,用“\e”表示结束,例如https://dianping/shop/\d\e,这样就能采集网页内所有这种格式的网页链接。
当我们想要采集的网页下面有翻页的链接,就必须配置翻页。除了在右上角默认模板处抽取我们想要的得到的医院链接外,还要再新建一个链接抽取,抽取页面翻页的地址。
我们继续从采集预览处得到翻页的链接,过滤规则选择包含,通过观察发现几个链接的相同点,输入到过滤串里就能得到想要的翻页链接了。
第一层级的模板建好了,下面我们随便点进一个医院主页内,复制链接建立下一层级模板。在默认模板(2)的示例地址内输入医院主页的链接。
因为我们需要采集该医院所有用户评论,所以我们找到下面的“更多点评”,通过刚刚地址过滤的方法,过滤出更多点评的链接,并建立模板(3),示例地址输入刚刚过滤的得到的“更多点评”的网址。
注:点击链接抽取,看左下角关联模板处,一定要关联到下一层级的模板,如果是翻页的链接抽取,要关联自身模板,否则会数据采集失败。这点一定要注意。
这样模板的基本配置就完成了,下一步是建立表单,下图是我们的需求,红色字体我们能从模板二采集到,蓝色字体我们能从模板三采集到,所以我们需要建立两个表单。
点击表单配置,新建一个表单,添加一个网页主键如图,一定要勾选索引字段,键值唯一,主键字段三个选项,取值类型选择网页主键点击确定。
然后添加下一个字段如标题“title”
取值类型选择“选区内全部文本”,变量类型选择“string”,选择合适的字符长度点击确定。依次建立所有字段。
这是我建立的两个表单的所有字段,表单名称分别为“大众点评1”、“大众点评2”,建立好以后点击保存即可。点开模板配置,每一个模板对应相应的表单,右键模板二“添加数据抽取”,表单名称选择“大众点评1”。
同样在模板三处再添加另外一个数据抽取表单,添加好后如下图所示:
单击“title”,然后按住ctrl键同时鼠标左键点击对应标题,内容过多的话按住shift可以调整内容大小,选好后点击保存。
全部选取完后点击左上角的文件,然后全部保存。
下一步点击数据,连接数据库,然后再次点击数据,选择数据表,选择刚刚新建两个数据表的字段后创建表,创建好后勾选并确定,就可以进行数据采集了(如果表单有问题需要更改,改好后需要重新创建表单),速度慢可以点击设置里面的线程设置,设置多线程。
这只是一个简单的教程,软件还有很多强大的功能,祝大家使用愉快!
- ?
国内五大主流网站内容抓取工具、采集软件大盘点
Leo
展开
大数据技术用了多年时间进行演化,才从一种看起来很炫酷的新技术变成了企业在生产经营中实际部署的服务。其中,数据采集产品迎来了广阔的市场前景,无论国内外,市面上都出现了许多技术不一、良莠不齐的采集软件。
今天,我们将对比国内五大主流采集软件优缺点,帮助你选择最适合的爬虫,体验数据hunting带来的快感。
国内篇
1.火车头
作为采集界的老前辈,我们火车头是一款互联网数据抓取、处理、分析,挖掘软件,可以抓取网页上散乱分布的数据信息,并通过一系列的分析处理,准确挖掘出所需数据。它的用户定位主要是拥有一定代码基础的人群,适合编程老手。
采集功能完善,不限网页与内容,任意文件格式都可下载具有智能多识别系统以及可选的验证方式保护安全支持PHP和C#插件扩展,方便修改处理数据具有同义,近义词替换、参数替换,伪原创必备技能Conclusion:火车头适用于编程能手,规则编写容易,软件的定位比较专业而且精准化。
2.八爪鱼
一款可视化免编程的网页采集软件,可以从不同网站中快速提取规范化数据,帮助用户实现数据的自动化采集、编辑以及规范化,降低工作成本。云采集是它的一大特色,相比其他采集软件,云采集能够做到更加精准、高效和大规模。
自定义采集过程中,八爪鱼采集器系统自写的Xpath、自动生成的流程,可能无法满足数据采集需求。对数据质量要求高,则需自写Xpath,调成流程图等,以优化规则。
使用自定义采集的同学,虽然八爪鱼操作简单,比较容易上手。但是,仍需对八爪鱼采集原理有所了解,看完相关教程,循序渐进,成长周期较长。
可视化操作,无需编写代码,制作规则采集,适用于零编程基础的用户云采集是其主要功能,支持关机采集,并实现自动定时采集
Conclusion:八爪鱼是一款适合小白用户尝试的采集软件,云功能强大,当然爬虫老手也能开拓它的高级功能。
3.集搜客
一款简单易用的网页信息抓取软件,能够抓取网页文字、图表、超链接等多种网页元素。同样可通过简单可视化流程进行采集,服务于任何对数据有采集需求的人群。
可视化流程操作,与八爪鱼不同,集搜客的流程重在定义所抓取的数据和爬虫路线,八爪鱼的规则流程十分明确,由用户决定软件的每一步操作
支持抓取在指数图表上悬浮显示的数据,还可以抓取手机网站上的数据
会员可以互助抓取,提升采集效率,同时还有模板资源可以套用
Conclusion:集搜客操作较简单,适用于初级用户,功能方面没有太大的特色,后续付费要求比较多。
4.神箭手云爬虫
一款新颖的云端在线智能爬虫/采集器,基于神箭手分布式云爬虫框架,帮助用户快速获取大量规范化的网页数据。
直接接入代理IP,避免IP封锁
自动登录验证码识别,网站自动完成验证码输入
可在线生成图标,采集结果以丰富表格化形式展现本地化隐私保护,云端采集,可隐藏用户IP
Conclusion: 神箭手类似一个爬虫系统框架,具体采集还需用户自写爬虫,需要代码基础。
5.狂人采集器
一套专业的网站内容采集软件,支持各类论坛的帖子和回复采集,网站和博客文章内容抓取,分论坛采集器、CMS采集器和博客采集器三类。
支持对文章内容中的文字、链接批量替换和过滤可以同时向网站或论坛的多个版块一起批量发文具备采集或发帖任务完成后自动关机功能
Conclusion: 专注论坛、博客文本内容的抓取,对于全网数据的采集通用性不高。
注:给火车采集器的新手们一点学习建议
火车采集器是一个非常专业的数据抓取和数据处理软件,对软件使用者有较高的技术要求, 使用者要有基本的HTML基础,能看得懂网页源码,网页结构。
同时如果用到web发布或数据库发布,则对自己文章系统及数据存储结构要非常了解。
全网数据采集
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并