大数据除了Hadoop,还有Scrapy

简介:

1、先来扯扯大数据

互联网+概念的兴起,中国的创业者几乎把互联网+这趟车开进了所有领域,传统领域的商家人心惶惶,言必谈互联网+,仿佛不套点互联网的概念都不好意思宣传自家产品;而赶在这波潮流之前的正是燥热至今的“ 大数据 ”。

在这个上到各界研究机构、管理部门、企业,下到各大论坛、媒体、甚至商贩都能跟你聊“大数据”,你是不是觉得不拽点词儿都不敢出门。

可谁真正解析大数据背后的含义?从早期依赖结构化数据库的挖掘分析发展到现今海量、多源、非结构数据需要依赖并行算法才能解决数据的处理瓶颈,也事实上铸就了Hadoop、Spark这些技术脱颖而出;然而大数据所带来的数据噪声、真实性、完整性、解释性、误导性、合法性等等却都是不可忽视的挑战。

我们谈大数据,就像男人谈那玩意,似乎不加一个“大”就显得不够用似的,但骚年你要明白啊,科学证明,管不管用,还真不靠大。大固然可以吹嘘,但重点你还得问问家里的媳妇儿那啥感受呐( 污了… )。

小编觉得企业利用好数据修炼好内功才是重点,大数据是,小数据也可以是,深度学习是,普通数据分析也可以是。

那么不得不说的一个最核心的问题来了,在这个信息通达到任意一个生活碎片都可能产生海量交互数据的环境,除了Hadoop、除了机器学习,回归到数据的本源,你是不是可以和别人侃侃爬虫、侃侃Scrapy(读音:[ skreɪp ])

除了你的产品外,你真的拥有大数据么?

如何获取更广泛的外部数据?

是开放数据API接口?

还是几个半死不活的所谓数据交易市场?

显然太过局限,那么下面就来介绍下这个可以自定义获取几乎所有能被访问到的网站、APP数据的python爬虫框架-Scrapy。

目前,除了搜索引擎爬虫外,主流的被普遍大众所使用的技术有:

基于C++的Larbin;

基于Java的Webmagic、Nutch、Heritrix;

基于Python的Scrapy,pyspider;

基于Golang的Pholcus;

基于.NET的abot等等

如果从实用性和易懂的角度,推荐首选Python,一方面Python易于入门,各类开源库齐全,另一方面Scrapy的社区活跃,遇到问题可以及时找到答案。对于Python的2个爬虫技术,Pyspider有自己的操作界面,简单易用,但是帮助文档少,自定义空间有限;而Scrapy除了社区活跃,他的优点还在于其灵活的可自定义程度高,底层是异步框架twisted,并发优势明显(吞吐量高)。

2、什么是Scrapy

“ Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 AmazonAssociates Web Services ) 或者通用的网络爬虫。”

以上是官方的说明,更详细地说,Scrapy是一个十分健壮、非常好用的 从互联网上抓取数据 的web框架。

它不仅仅提供了一些开箱即用的基本组件,还提供了强大的自定义功能。框架的学习规律就是修改配置文件,填充代码就可以了;

同样地,Scrapy只需一个配置文件就能组合各种组件和配置选项,并且可以级联多个操作如清理、组织、存储到数据库等。

关于他的强悍,举个简单例子来说:假设你抓取的目标网站的每一页有500个条目,Scrapy可以毫不费劲地对目标网站同时发起 20 个请求 ,假设带宽足够,每个请求需要 1秒钟 完成,就相当于每秒钟爬取到20个页面,即每秒钟产生 10000个 条目数据 。再假设要把这些条目同时存储到云上,且每一个条目的存储需要3秒钟,那么处理20个请求就需要运行10000*3=30000个并发的写入请求,对于传统的多线程来说,就需要换成30000个线程,这显然地造成系统无法承载。而对于Scrapy,只要硬件够, 30000个并发也不是问题。

感受下爬虫程序运行带来的酸爽吧

3、Scrapy能做什么?

以上只是对Scrapy的一个简单的普及,事实上现在Scrapy已是一个主流的Python开源爬虫框架,它设计好了爬虫应用的基本骨架,使得用户不再需要配备大量的人力去重复造轮子,同时它也为了实现不同的应用目的留下了灵活的设计余地。使用一些其它的模块,或者配合一些中间件,可以将Scrapy扩展成为复杂的高级爬虫程序。

解决了这个顾虑后,能够发挥你的想象这有多可怕了么?当然你不会简单到认为爬虫也就是简单的爬下电影列表、图书这些吧!下面列举些小编认为可以操作的事情:

1 ) 舆情 :通过获取互联网的数据,监测舆论动向,评估事态发展并制定应对策略;

2 )热点 新闻 :监测全网新闻的数据,通过算法去监测每个新闻的转发、评论的单位时间增量趋势,发现潜在热点新闻/社会事件,以此来打造一个热点新闻源的供应商/产品也极有可能;

3 )对某类金融产品的检测和跟踪、上市公司的 年报分析 等,具体点说,已经有大神分享通过抓取雪球中粉丝量前5%的大V调仓记录,来建立量化策略实现过200%以上的收益,当然这也可能只是偶然;

4 )房地产,这个虐心又刺激的行业,可以通过爬虫获取到的 交易、价格等数据来分析未来的房产走势等等;

5 )当然也少不了来点污,作为宅男/宅女的你还可以做点羞羞的事儿,比如下面的图片,不用多展开了吧,赶紧操起键盘吧……。

以上只是简要列举一二,当然获取到的数据怎么分析也是一项不小的技术活,尤其是非结构化的文本数据的分析,推荐可使用些开源的jieba分词、SnowNLP等进行分析;这让小编想起了前几天老罗新发布的一项产品功能点—— Bigbang ,瞬间就能把一段文本语句炸裂成结构更小的词组,并达超准确的词组上语义分割,简单说就是分词技术已经可以应用到日常生活中,虽然这本身并不算什么新技术,但是这项具体的应用,让小编更加坚信了未来将会有越来越多的机器学习算法应用于生活中。

所以爬虫所能够带来更多的价值挖掘还请读者们大胆地发挥想象吧,小编已经不敢想下去了。不过小编还是提醒一句:

在你没有十足把握的情况下,不要尝试去摸一些重要部门的大门

“ 一念清净,烈焰成池 ;一念惊觉,航登彼岸”

4、关于Scrapy的一点唠叨

这个时候你是不是有个疑问:

人家有反爬虫技术啊,有Robot协议啊!

嗯,没错,事实上大部分情况下,反爬虫的需求是不能影响到网站的正常使用,一个网站功能性需求一定要高于反爬虫需求,所以大部分反爬虫一定不会恶心到正常用户的使用。也就是说,即使做了强反爬策略,爬虫依然可以伪装成人的正常访问行为,只不过是增加抓取数据的代价而已,而不可能做到百分百的防止爬虫。至于robot.txt只是约定,如公交车上贴着的【请为老弱病残孕让座】一样,遵不遵守完全在于爬虫作者的意愿。因此 爬虫与反爬虫的对弈,爬虫一定会胜。


本文作者:佚名

来源:51CTO

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
10天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
5天前
|
存储 分布式计算 Hadoop
大数据存储技术(1)—— Hadoop简介及安装配置
大数据存储技术(1)—— Hadoop简介及安装配置
30 0
|
10天前
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
|
10天前
|
分布式计算 资源调度 Hadoop
java与大数据:Hadoop与MapReduce
java与大数据:Hadoop与MapReduce
29 0
|
10天前
|
存储 分布式计算 Hadoop
【专栏】Hadoop,开源大数据处理框架:驭服数据洪流的利器
【4月更文挑战第28天】Hadoop,开源大数据处理框架,由Hadoop Common、HDFS、YARN和MapReduce组成,提供大规模数据存储和并行处理。其优势在于可扩展性、容错性、高性能、灵活性及社区支持。然而,数据安全、处理速度、系统复杂性和技能短缺是挑战。通过加强安全措施、结合Spark、自动化工具和培训,Hadoop在应对大数据问题中保持关键地位。
|
10天前
|
分布式计算 Hadoop 大数据
[大数据] mac 史上最简单 hadoop 安装过程
[大数据] mac 史上最简单 hadoop 安装过程
|
机器学习/深度学习 分布式计算 大数据
|
10天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
102 2
|
10天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
105 1
|
10天前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
262 0