基于Scrapy和Hadoop平台的房屋价格数据爬取和存储系统论文

基于Scrapy和Hadoop平台的房屋价格数据爬取和存储系统

文/丁志毅

摘 要

本文提出基于Scrapy和Hadoop的房屋价格爬取及存储系统,利用Scrapy框架通过多线程爬取,爬取结束后执行完整性检查,过滤出信息不完整的网页,进行再次爬取直到信息完整,以文本文件的形式存入HDFS(Hadoop Distributed File System),然后对爬取到的网页进行数据分析,提取出有价值的数据。

【关键词】 房屋价格 Scrapy系统爬虫 Hadoop

随着大数据、云计算、人工智能等新兴计算机技术的急速发展,所产生的数据呈爆炸性增长,如何实现存储和计算能力的分布式处理,摆脱目前传统的计算技术和信息系统的处理方式,是目前数据分析领域亟待解决的问题。Hadoop 是使用 Java 语言开发的分布式计算存储系统,是一个由Apache基金会支持的开源项目,提供可靠的,可扩展的分布式系统基础架构,能够跨计算机集群分布式存储海量数据,允许使用简单的编程模型分布式处理数据。用户可以像操作本地文件系统一样透明的访问HDFS,常应用于海量数据的场景。

1 爬虫系统的设计与实现

1.1 爬虫基本原理

网络爬虫的主要作用是依据一定的爬行策略自动的从网上下载网页镜像到本地,并能够抓取所有其能够访问到的网页以获取海量信息,解析其中的数据进行分析挖掘等。其基本工作原理如下:首先初始化一个URL作为爬行的开始位置,如果该 URL没有被抓取过,解析其DNS信息,尝试与这些 URL链接所在的服务器建立连接,自动提取页面上的信息保存至本地,同时提取新的 URL,根据一定的遍历算法将其去重过滤后加入待爬取队列,重复以上步骤遍历所有的网页数据,直到待爬取的队列中没有可用的 URL,满足停止的条件时结束爬取。

1.2 爬取模块

图1:Scrapy爬虫的流程

图2:HDFS系统结构

Scrapy是一款开源的网络爬虫框架,是使用python 语言开发并封装的一个强大的自动数据采集框架,目的为了爬取网站内容,提取结构性数据。无需再从零开始去设计爬虫框架,而是可以简单、高效的搭建python 的 Scrapy 框架,通过 Scrapy 框架提供的功能进行定向的数据爬取工作。在 Scrapy 项目中,可以方便地自定义爬虫的爬取规则,即可快速获得所需要的网页数据,同时一些固定的前置后续处理可由一些稳定的开源库帮助解决,并可根据需要将关键数据保存为特定的数据格式。Scrapy 爬虫的流程如图1所示。

参照组、综合组两组预防接种儿童均行常规护理干预,主要为核实接种儿童资料、辅助进行相关检查、健康宣教等。

实施地下水超采综合治理是一项艰巨复杂的系统工程,涉及节水、调水、挖潜、治污、管理等多项措施,坚持突出重点、综合施策、强力推进,重点在“节、引、蓄、调、管”五个方面下功夫、做文章、要效益。

1.2.6 Downloader middlewares

1.2.1 Scrapy Engine 组件

齿轮的加工是靠坯件的内孔和端面进行定位,所以必须保证内孔和端面一次装夹加工,俗称“一刀落”,以保证内孔和外圆的同轴度、端面和内孔轴线的垂直度要求,减少齿轮加工后的齿圈径向跳动Ft和齿向公差Fβ。由于齿圈的径向跳动影响齿轮副啮合时的压力角和侧隙的变化,从而使工作不平稳,噪声增加;齿向公差影响齿轮副实际接触线缩短,工作时将产生应力集中,噪声也明显提高。另外内孔和端面的尺寸精度、形状公差和表面粗糙度都要符合图样要求。

爬虫框架的引擎组件,是整个框架的“大脑“,负责所有组件的数据流动。

1.2.2 Scheduler 组件

缺乏实践环节,使具有较强应用性的课程资源昆虫学课程变成纯理论教学,学生的学习兴趣不高,教学效果较差,难以满足创新能力培养的要求。在“卓越农林人才教育培养计划”的指导下,打破原有的课程教学格局,开展适应创新型人才培养模式的资源昆虫学教学研究已成为迫在眉睫的任务。

1.2.3 Downloader 组件

2018年1月30日至2018年4月24日,四川归连铁路有限公司组织人员,采用本文提出的作业流程,利用GPR对地方铁路归德至连界线K0~K30+443里程存在的翻浆冒泥病害分别进行了现场勘探、室内数据处理与解释。在勘探的近30 km路基净长度(不含桥隧)中,发现道床和基床翻浆冒泥点约250处。

下载器组件,负责下载网页数据。

1.2.4 spiders 组件

负责对数据进行清理、验证以及持久化(转存数据库)的处理。

选取2017年1月~2018年3月在蛟河市天岗镇中心卫生院接受治疗的2型糖尿病患者108例作为研究对象,将其随机分为观察组和对照组,各54例。其中,观察组男29例,女25例,年龄60~75岁,平均年龄(67.9±5.1)岁,病程6~23年,平均(13.8±2.4)年;对照组男30例,女24例,年龄60.5~73岁,平均年龄(67.5±5.3)岁,病程5~24年,平均(13.6±2.5)年。两组患者的性别、年龄及病程等一般资料比较,差异无统计学意义(P>0.05)。

中国文化遗产资源不仅是凝聚国民精神力量的纽带,保护和利用好中国文化遗产,可以使文化遗产成为“中国名片”,在世界舞台上展现中国优秀传统文化的魅力。

爬虫模块,其功能在于从特定的网页结构数据中获取指定信息,在 Scrapy 中被定义为实体(Item)。

Scrapy 强大的功能得益于他的构架,他总共有 8 个部分组成:

调度器组件,负责接收并创建请求队列。

其在引擎和下载器组件之间,功能是负责引擎发出的请求,以协调下载组件工作。

负责处理爬虫数据的输入和输出,主要是为了提高爬虫质量,可以同时使用不同功能的下载中间件。

1.2.5 Pipeline 组件

1.2.7 spider middlewares

2 HDFS存储模块

HDFS 采用典型的主从式(master-slave)设计,在该设计中主要包含两种节点:主节点(NameNode)和数据节点(DataNode)。主节点负责管理整个文件系统的命名空间;另外一种 DataNode是从节点,为数据提供真实的存储、管理服务。DataNode 最基本的存储单位是 Block,文件大于 Block 时会被划分为多个 Block 存储在不同的数据节点,其元数据存储在NameNode中,全局调度数据块的读写操作,主要用于定位block与DadaNode之间的对应关系。用户如果操作 HDFS 文件时,需要先访问 NameNode 节点,读取元数据(metaData)信息,得到存储位置后再访问 DateNode 。其架构如图2所示。

经Scrapy采集到的数据需要持久化到hdfs中,python语言来访问Hadoop HDFS时,需要引入pyhdfs库,通过pyhdfs提供的API接口实现对hdfs的操作。HdfsClient这个类可以连接HDFS的NameNode,用来读、些、查询HDFS上的文件。代码示例:

Client=pyhdfs.HdfsClient(hosts="192.168.1.108,9000",user_name="hadoop")

从本地上传文件至集群

client.copy_from_local("D:/test.csv","/user/hadoop/test.csv")

打开一个远程节点上的文件,返回一个HttpResponse对象

1.病因和非病因死亡。据赵式文分析,病因死亡占仔猪死亡总数的24.1%,其中下痢死亡占死亡总数的13.7%,肺炎占3.3%,其他占7.1%;非病因死亡占死亡总数的75.9%,其中压死、踩死的占死亡总数的33.1%,弱小或先天不足占17.3%,缺奶占5.7%,淹死占2.7%,冻死占2.8%,咬死占5.3%,其他占9.0%。随着产房环境温度的改善,非病因死亡可能减少,如忽视防疫消毒,可能加大仔猪的因病死亡。

HttpResponse response = client.open("/user/hadoop/test.csv")

3 结语

在房地产市场领域,浩瀚的网络资源已经呈现出大数据的特点,传统的信息处理技术已经无法适应需求。针对无法进行有效数据分析的现状,本文研究利用Scrapy网络爬虫框架和HDFS 分布式文件系统进行数据的采集和存储。HDFS 能为不断增长的数据提供高度的容错、高吞吐量和分布式储存服务。通过提升大数据分析技术在房地产行业中的应用水平,充分利用 Hadoop 平台的优势,转变数据存储方式和计算模式,加强数据的分析和挖掘,提高政府及有关部门对房地产市场分析的广度和深度,更好的为政府决策、行业管理提供决策依据是下一步的主要研究工作。

参考文献

[1]林清滢.基于Hadoop的云计算模型[J].现代计算机:专业版,2010(7):114-116.

[2]陈吉荣,乐嘉锦.基于Hadoop生态系统的大数据解决方案综述[J].计算机工程与科学,2013,35(10):25-35.

[3]马联帅.基于Scrapy的分布式网络新闻抓取系统设计与实现[D].西安电子科技大学,2015.

[4]郝树魁.Hadoop HDFS和MapReduce架构浅析[J].邮电设计技术,2012(7):37-42.

作者简介

丁志毅(1984-),男,河南省郑州市人。郑州市房地产市场和产权交易管理中心信息技术和市场分析科,中级软件设计师,硕士研究生学历,主要从事房屋交易信息化、数据分析工作。

作者单位

郑州市房地产市场和产权交易管理中心 河南省郑州市 450000

标签:;  ;  ;  ;  ;  

基于Scrapy和Hadoop平台的房屋价格数据爬取和存储系统论文
下载Doc文档

猜你喜欢