如何从互联网海量信息采集海量数据

不编程也能爬虫?手把手教你如何从互联网采集海量数据_大数据文摘_传送门
不编程也能爬虫?手把手教你如何从互联网采集海量数据
大数据文摘
作者:赵一鸣
摘自:微信公号“沙漠之鹰”大数据文章-数据抓取交流学习群成立啦!想要跟大神级别的本文作者同群交流学习爬虫?想要跟小伙伴一起组团打怪爬下某网站并交流心得?想获取第一手数据抓取咨询和工具?点击文末“阅读原文”报名加入◆ ◆ ◆不少朋友都会问:几十万条租房,二手房,薪酬,乃至天气数据都是从哪里来的?其实这些数据在十几分钟内就可以采集到!一般我会回答,我用专门的工具,无需编程也能快速抓取。之后肯定又会被问,在哪里能下载这个工具呢?最近比较忙乱,说好的一大堆写作任务都还没有完成。授人以鱼不如授人以渔,我做了一个决定,将这套软件全部开源到GitHub。免费使用,开放源代码! 从此以后,估计很多做爬虫的工程师要失业了。。。因为我的目标是让普通人也能使用!这篇文章介绍爬虫大概的原理,文末会有程序地址。◆ ◆ ◆什么是爬虫什么是爬虫互联网是一张大网,采集数据的小程序可以形象地称之为爬虫或者蜘蛛。爬虫的原理很简单,我们在访问网页时,会点击翻页按钮和超链接,浏览器会帮我们请求所有的资源和图片。所以,你可以设计一个程序,能够模拟人在浏览器上的操作,让网站误认为爬虫是正常访问者,它就会把所需的数据乖乖送回来。 爬虫分为两种,一种像百度(黑)那样什么都抓的搜索引擎爬虫。另一种就是开发的,只精确地抓取所需的内容:比如我只要二手房信息,旁边的广告和新闻一律不要。 爬虫这样的名字并不好听,所以我给这套软件起名为Hawk,指代为"鹰",能够精确,快速地捕捉猎物。 基本不需编程,通过图形化拖拽的操作来快速设计爬虫,有点像Photoshop。它能在20分钟内编写大众点评的爬虫(简化版只需3分钟),然后让它运行就好啦、下面是使用Hawk抓取二手房的视频,建议在wifi环境下观看:◆ ◆ ◆自动将网页导出为Excel那么,一个页面那么大,爬虫怎么知道我想要什么呢?人当然可以很容易地看出,上图的红框是二手房信息,但机器不知道。网页是一种有结构的树,而重要信息所在的节点,往往枝繁叶茂。 举个不恰当的比方,一大家子人构成树状族谱,谁最厉害?当然是:
孩子多,最好一生20个
孩子各个都很争气(生的孙子多)
最好每个孩子还都很像(清一色的一米八)大家就会觉得这一家子太厉害了!我们对整个树结构进行打分,自然就能找到那个最牛的节点,就是我们要的表格。找到最牛爸爸之后,儿子们虽然相似:个子高,长得帅,两条胳膊两条腿,但这些都是共性,没有信息量,我们关心的是特性。大儿子锥子脸,跟其他人都不一样,那脸蛋就是重要信息;三儿子最有钱——钱也是我们关心的。 因此,对比儿子们的不同属性,我们就能知道哪些信息是重要的了。 回到网页采集这个例子,通过一套有趣的算法,给一个网页的地址,软件就会自动地把它转成Excel! (听不懂吧?听不懂正常, 不要在意这些细节!)◆ ◆ ◆破解翻页限制获取了一页的数据,这还不够,我们要获取所有页面的数据!这简单,我们让程序依次地请求第1页,第2页...数据就收集回来了就这么简单吗?网站怎么可能让自己宝贵的数据被这么轻松地抓走呢?所以它只能翻到第50页或第100页。链家就是这样:这也难不倒我们,每页有30个数据,100页最多能呈现3000条数据。北京有16个区县两万个小区,但每个区的小区数量就没有3000个了,我们可分别获取每个区的小区列表。每个小区最多有300多套在售二手房,这样就能获取链家的所有二手房了。 然后我们启动抓取器,Hawk就会给每个子线程(可以理解为机器人)分配任务:给我抓取这个小区的所有二手房! 然后你就会看到壮观的场面:一堆小机器人,同心协力地从网站上搬数据,超牛迅雷有没有?同时100个任务!!上个厕所回来就抓完了!!!◆ ◆ ◆清洗:识别并转换内容获取的数据大概长这样:但你会看到,里面会有些奇怪的字符应该去去掉。xx平米应该都把数字提取出来。而售价,有的是2130000元,有的是373万元,这些都很难处理。 BUT,没关系!Hawk能够自动识别所有的数据:发现面积那一列的乱码,自动去掉识别价格,并把所有的价格都转换为万元单位发现美元,转换为人民币发现日期,比如14年12.31,都能转换为日哈哈,然后你就能够轻松地把这些数据拿去作分析了,纯净无污染!◆ ◆ ◆破解需要登录的网站此处的意思当然不是去破解用户名密码,还没强到那个程度。 有些网站的数据,都需要登录才能访问。这也难不倒我们。当你开启了Hawk内置了嗅探功能时,Hawk就像一个录音机一样,会记录你对目标网站的访问操作。之后它就会将其重放出来,从而实现自动登录。你会不会担心Hawk保存你的用户名密码?不保存怎么自动登录呢?但是Hawk是开源的,所有代码都经过了审查,是安全的。你的私密信息,只会躺在你自己的硬盘里。(我们就这样自动登录了大众点评)◆ ◆ ◆是不是我也可以抓数据了理论上是的。但道高一尺魔高一丈,不同的网站千差万别,对抗爬虫的技术也有很多种。而且小虫虫对细节非常敏感,只要错一点,后面的步骤就可能进行不下去了。怎么办呢?沙漠君把之前的操作保存并分享出来,你只要加载这些文件就能快速获取数据了。如果你有其他网站的获取需求,可以去找你身边的程序员同学,让他们来帮忙抓数据,或让他们来试试Hawk,看看谁的效率更高。如果你是文科生妹子,那还是建议你多看看东野奎吾和村上春树,直接上手这么复杂的软件会让你抓狂的。那该找谁帮忙抓数据呢?嘿嘿嘿...◆ ◆ ◆在哪里获取软件和教程?Hawk: Advanced Crawler& ETL tool written in C#/WPF软件介绍HAWK是一种数据采集和清洗工具,依据GPL协议开源,能够灵活,有效地采集来自网页,数据库,文件, 并通过可视化地拖拽,快速地进行生成,过滤,转换等操作。其功能最适合的领域,是爬虫和数据清洗。Hawk的含义为“鹰”,能够高效,准确地捕杀猎物。HAWK使用C# 编写,其前端界面使用WPF开发,支持插件扩展。通过图形化操作,能够快速建立解决方案。GitHub地址:其Python等价的实现是etlpy:笔者专门为其开发的工程文件已公开在GitHub:使用时,点击文件,加载工程即可加载。不想编译的话,可执行文件在: 密码:4iy0编译路径在:Hawk.Core\Hawk.Core.sln感谢作者授权转载,稿件部分有变动,作者在大数据文摘的其他投稿点击文末推荐文章查看。◆ ◆ ◆往期精彩文章推荐,点击图片可阅读手把手教你用数据分析帮女神学姐选婚房数据分析,2016年如何在北京租到好房子
觉得不错,分享给更多人看到
大数据文摘 微信二维码
分享这篇文章
7月14日 22:31
大数据文摘 最新头条文章
大数据文摘 热门头条文章新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
丰衣足食, 积分 638, 距离下一级还需 362 积分
论坛徽章:0
我现在在针对网络上的海量数据的协议分析,基于X86架构下,是直接降采集到的数据以文件的形式写进本地磁盘,但是这样造成太大的I/O,最后结果使得本地网络流量变得极其低,从几百兆变成几十兆,不知道大家觉得采用什么样方式采集接受这些数据呢?我知道,写socket的方式对I/O的要求好像不高,但不知道怎么设计,请大侠们给点建议?
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
丰衣足食, 积分 701, 距离下一级还需 299 积分
论坛徽章:0
生产者消费者模型
采集到的数据 --- 生产者
写进本地磁盘&&--- 消费者
通过消息队列,链表等进行交换数据
在产生瓶颈时分析产生的原因,是CPU没给足哪个进程足够多的运行时间等,还是别的,还可以考虑提高硬件等,如SCSI硬盘,更好地配置等。
论坛徽章:1
接受下来之后,根据某种策略,分发到几个不同的机器上去,再写磁盘。
硬件方面可以用 SCSI,或者磁盘阵列等,像你这种情况,磁盘 IO 肯定是瓶颈。
丰衣足食, 积分 638, 距离下一级还需 362 积分
论坛徽章:0
对,磁盘I/O就是最大的问题,因为我测试过,我用写SOCKET的方式直接将采集到的数据传到另一台机器的时候,CPU,内存消耗都不会太高,但是,一改成写文件到本地磁盘,然后让其他机器读取这些文件,就会造成,CPU,内存消耗太打,我的硬件已经是配置得相当好的了,我也考虑过通过共享内存的方式来处理,但最终还是会造成流量急剧下降
论坛徽章:1
原帖由 mafiaguy 于
11:27 发表
但是,一改成写文件到本地磁盘,然后让其他机器读取这些文件,就会造成,CPU,内存消耗太打
这么看倒不像是磁盘 IO 的问题,似乎是硬盘太差。
小富即安, 积分 3250, 距离下一级还需 1750 积分
论坛徽章:0
哦 这么高的流量 没写过。小流量写过, 多线程写,还是很好的。 双缓冲方式, 你应该已经用了。
白手起家, 积分 80, 距离下一级还需 120 积分
论坛徽章:0
原帖由 mafiaguy 于
10:21 发表
我现在在针对网络上的海量数据的协议分析,基于X86架构下,是直接降采集到的数据以文件的形式写进本地磁盘,但是这样造成太大的I/O,最后结果使得本地网络流量变得极其低,从几百兆变成几十兆,不知道大家觉得采 ...
能描述一下你的软硬件结构吗? 以及内存大小, 网络带宽等, 不然别人很难提出有价值的建议吧.【图文】大数据的来源与数据采集方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
大数据的来源与数据采集方法
上传于|0|0|文档简介
&&比较系统地介绍大数据的来源以及大数据的采集方法,值得一看!
大小:2.74MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢实时大数据分析:网络分析的一种新方法
发表于 15:07|
来源机房360|
作者litao984lt
摘要:RTBDA是大数据分析的关键要素和增值命题,特别是在掌握了海量信息的基础上,采取积极主动的措施进一步实时检查数据信息所累积的有价值的洞察。这一战略已成为许多互联网/通信行业的OTT(Over The Top)公司的基石。
【编者按】在大数据讨论领域出现了一个新的课题:实时大数据分析(RTBDA)。RTBDA是大数据分析的一个关键要素和增值命题,特别是在掌握了海量信息的基础上,采取积极主动的措施进一步实时检查数据信息所累积的有价值的洞察。这一战略已成为许多互联网/通信行业的OTT(Over The Top)公司的基石。OTT公司继续在网络上持续产生海量的流量,而这些数据流量并不能对企业的营收增长带来多少贡献,已然成为网络电信运营商的一大困扰。RTBDA还尚需要一定的磨练,特别是在电信网络环境中。幸运的是,发展该战略所需要的技术已经具备,但仍有改进的余地。RTBDA概述当被分解到其最简单的形式时,分析包括两部分,以便将自身与数据仓库和商业智能进行区分:实时行动分布式,并行处理大数据分析能够解决处理大量无关且不能存放在一个单一的服务器或数据库的数据集所带来的普遍的挑战问题。而这个问题可以通过使用分布式并行处理分布在多个服务器的大型数据集得以解决,每台服务器处理并行数据的一部分。大数据分析可以与结构化和非结构化数据工作,因为它并不需要一个特定的结构。这种做法的一个例子将使用Hadoop的MapReduce,其也可以看作是大数据对今天的深远影响。尽管目前有方法来处理大量的数据,大数据处理缩小以便能够在指定的时间内完成。现在,时限这一概念比以往任何时候都越来越都多的与“实时”相关。尽管RTBDA仍然是一个相对较新的概念,但其解决了实时主动或被动的采取措施的需求。而这是基于互联网内容和服务提供商们了解到了正在发生的事情,检查情况并实时采取行动。理解“实时”电信在实时大数据分析:新兴架构大会上,迈克巴洛问道,“所谓的实时到底有多'实时'?”“这取决于你的目标,问题的答案会有动态的变化。在某些情况下,秒或毫秒就足够了,而在另一些情况下,实时需要更快。这个问题是从电信方面很有趣。它揭示了当前的电信运营商们如果想要成功的解决OTT公司所带来的流量挑战所必须面临的一个潜在的弱点。这样的话,目前在电信行业所能够接受的“实时”的标准就显得不再足够了。此前,电信网络使用面向连接的技术。程序只能进行集中在一个高度结构化的进程,前一分钟的网络与后一分钟并没有多大的修改,甚至时间跨度一小时也不会有太大改变。在这些情况下,在一致的时间间隔从网络上收集信息就知道发生了什么。该协议的管理信息丰富,能够从一个协议聚集大量的洞察力。在这种情况下,“实时”可以在几秒钟之内甚至几分钟内定义,这就是为什么他们通过每5到15分钟收集呼叫详细记录(CDR)就能充分获得完全的洞察力的原因了。同样的情形在今天已经不再可能。向LTE的过渡使电信运营商完成过渡到基于以太网和IP的数据包网络,其功能与面向连接的技术和协议是完全不同的。IP网络的一个基本原则是:网络是自给自足的。网络提供了流量传输的通道,并依据流量拥堵和其他情况进行网络路径重定向。这个特点使网络能够迅速就相关的改变做出回应。缺点是无法确切地预测流量。这种情况又因以太网和IP协议变得复杂,缺乏面向连接的协议所能提供的同等水平的管理信息。分组传输网络(Packet networks )本质上也是动态的,因为其设计初衷是为多个用户共享相同的基础设施提供服务的。在较长的一段时间,网络的消耗看起来很低,但在现实中流量传输需求很大,可能消耗掉所有可用的带宽。在这种情况下,对IP网络应该做出反馈,确保流量是在稳定的网络上传输。最终,在网络中可能从一个IP包或以太网帧到下一个发生变化。电信网络管理和数据分析的中心问题是他们都依靠事件详细记录(EDRs),CDRs和IP详细记录(IPDRs)来深入了解实时发生的状况。在过去,“实时”这一定义每隔几分钟就已经足够了。当我们考虑到以太网帧在10 Gbps网络可以以每帧短短67纳秒的时间在之间以太网帧传输,我们就开始理解在一个分组传输网络的“实时”指的是什么了。在现如今这个快节奏的环境“实时”的概念已经不仅不是分钟,也不是秒来。今天,其是以纳秒为时间间隔了。实时评估使用CDRs,EDRs和IPDRs进行大数据分析是一个好主意,这取决于企业正在努力完成的任务。大数据分析可以以两种方式制定决策:实时决策根据趋势及预测分析加强规划,以及服务和网络的优化利用明细记录、以及其他结构化和非结构化数据源进行优化和规划是必要的。这些记录包括丰富的信息,帮助预测有用的趋势。除非辅以分组网络的实时信息,提供关于发生了什么的精确细节,否则这些信息将无法提供一个完整的视图。不幸的是,详细的记录不能用于实时决策,因为其只是每5至15分钟的时间间隔进行收集。这个时间间隔与我们对什么是真正分组网络实时的理解不兼容。其需要不断收集,存储和分析真正的实时网络信息,进行决策。要理解网络正在发生什么,必须对所有相关的以太网帧与IP数据包进行实时审查。通过以这种方式捕获和存储网络信息,我们不仅具备了能够分析使用实时信息的能力,同时也可以为我们提供一个了解在信息网络发生了什么事件的基础的详细可靠的方式,以补充其他大数据的活动的洞察。RTBDA在电信行业的应用实时数据采集层可以为决策制定提供可操作的、层出不穷的材料。无论是电信管理论坛和IP网络监控的服务质量智能支持(IPNQSIS)项目,以及欧洲Celtic-Plus计划的一部分,都曾研究过这个需求,作为提升各自客户体验管理的努力的一部分。这两个项目的结论是,探头和设备对于了解在网络中正在发生的事情的可靠,实时洞察是必要的。典型地,探头数据采集器将数据传送到其他管理系统,而设备使用相同的技术,而且能够分析数据,并可以在本地存储信息。通常情况下,设备集中于一个特定的任务,比如性能监控,测试和测量,或安全性,并且往往被视为满足非常具体的要求。在另一方面,探头和设备可以作为大数据分析的实时数据源发挥更多的战术作用,并帮助实现RTBDA战略。下文中提供了一个这样的基础设施如何实现的三个步骤的视图。实现部署最初的步骤需要数据采集设备的部署。这里的一个关键因素是以太网帧和IP数据包必须被实时捕获,不管在什么情况下,以线速度且零数据包丢失。这种可见性证实了源源不断的可靠信息的收集。每帧必须被赋予独特的时间间隔,以保证精确的时间表可以被建立,不仅涵盖本地的设备,同时还能跨多个设备。这些时间间隔精度必须是以纳秒为计量单位。例如,在10 Gbps的网络以太网帧只有67纳秒的时间间隔,时间间隔分辨率必须小于67纳秒。否则,两个以太网帧都会收到相同的时间间隔,使得其很难区分。在一个100 Gbps的网络,这段时间间隔将减少到6.7纳秒。结合零数据包丢失捕捉纳秒级精度的实时数据,确保了我们能够掌握一致的,准确的数据分析信息流。存储其次,收集的信息应该实时被存储。几个设备提供捕捉的数据存储到磁盘,允许实时的数据可以直接存储到本地硬盘。另外,这些数据可以被转移到一个存储区域网络(SAN)或其他位置。捕获的数据可以被用来在网络上创建一个历史年表,以精确的细节记录发生了什么。其可能用来重现到底发生了什么事,当进行重现时,使用这些数据。这段细节记录历史是数据分析的一个丰富的信息源。这种类型的数据可以为数据信息的使用和行为模式提供洞察。如果设备具有深度数据包检测(DPI)的功能,那么,使用服务,包括互联网服务,可以监视和分析时间,地点和设备类型使用方面的趋势。这种信息本身对于网络和服务的优化是一种宝贵的资源。可以据此来规划新的,有针对性的服务,以匹配用户的喜好。此外,这些信息可以为互联网内容服务提供商提供洞察,让运营商能够向潜在客户提供令人信服的服务能力。实时评估最后,实时的数据存储有助于实现实时决策。捕获到磁盘的历史信息可帮助开发预期行为的配置文件。当数据与网络活动的实时信息并置时,能够检测出意想不到的事件或异常。这些问题可能是一个安全威胁,也有可能是性能下降或有机会为客户提供一个数据扩展包或互补性的服务。从RTBDA的角度来看,这种能力与OTT内容及服务提供商执行的能力是非常接近的,基于对对目前正在发生的事情,并与过去的事情比较进行理解做出实时的反应。RTBDA战略基础遵循这三个步骤来实施,通过探头和设备提供的实时信息可以用来实现RTBDA电信网络以及在大数据分析战略规划中用其他信息来源以补充。这一技术和产品用来实现战略部署不仅仅是可用的,而且已经被广泛使用了,只是不以这方面的目的。更有趣的是,当今绝大多数企业,金融,政府和电信网络所使用的设备都是基于现成的服务器技术,其是与未来的运营计划相兼容的。软件定义的网络(SDN)和网络虚拟化功能(NFV)策略的基石都是基于现成的服务器硬件。RTBDA在未来的电信业的展望现在是时候需要现代电信网络重新考虑“实时”这一概念的意义,以及他们所使用的大数据分析的信息源了。电信运营商必须开始评估在网络中使用探头和设备技术等更多的战术方法来提供RTBDA了。这样,不仅能够为规划决策提供更准确的信息,同时也可以创造新的机会,提供更好的服务,不仅为最终用户,也为OTT服务提供商自身。这种能力最终可以帮助电信网络的OTT解决流量的货币化问题。原文链接:&(责编/魏伟)以“&”为主题的&将于5月20-23日在北京国家会议中心隆重举办。产业观察、技术培训、主题论坛、行业研讨,内容丰富,干货十足。&需要购买的朋友,请抓住这最后的机会,点击
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章}

我要回帖

更多关于 如何处理海量数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信