admin 管理员组

文章数量: 887016


2024年2月27日发(作者:integrity check failed)

数据库技术

Data Base Technique文/丁志毅基于Scrapy和Hadoop平台的房屋价格数据爬取和存储系统摘

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

Distributed File System),然后对爬取到的网页进行数据分析,提取出有价值的数据。【关键词】房屋价格 Scrapy系统爬虫 Hadoop

图1:Scrapy爬虫的流程随着大数据、云计算、人工智能等新兴计算机技术的急速发展,所产生的数据呈爆炸性增长,如何实现存储和计算能力的分布式处理,摆脱目前传统的计算技术和信息系统的处理方式,是目前数据分析领域亟待解决的问题。Hadoop 是使用 Java 语言开发的分布式计算存储系统,是一个由Apache基金会支持的开源项目,提供可靠的,可扩展的分布式系统基础架构,能够跨计算机集群分布式存储海量数据,允许使用简单的编程模型分布式处理数据。用户可以像操作本地文件系统一样透明的访问HDFS,常应用于海量数据的场景。1 爬虫系统的设计与实现1.1 爬虫基本原理网络爬虫的主要作用是依据一定的爬行策略自动的从网上下载网页镜像到本地,并能够抓取所有其能够访问到的网页以获取海量信息,解析其中的数据进行分析挖掘等。其基本工作原理如下:首先初始化一个URL作为爬行的开始位置,如果该 URL没有被抓取过,解析其DNS信息,尝试与这些 URL链接所在的服务器建立连接,自动提取页面上的信息保存至本地,同时提取新的 URL,根据一定的遍历算法将其去重过滤后加入待爬取队列,重复以上步骤遍历所有的网页数据,直到待爬取的队列中没有可用的 URL,满足停止的条件时结束爬取。1.2 爬取模块Scrapy是一款开源的网络爬虫框架,是使用python 语言开发并封装的一个强大的自动数据采集框架,目的为了爬取网站内容,提取结构性数据。无需再从零开始去设计爬虫图2:HDFS系统结构框架,而是可以简单、高效的搭建python 的

Scrapy 框架,通过 Scrapy 框架提供的功能进行定向的数据爬取工作。在 Scrapy 项目中,可以方便地自定义爬虫的爬取规则,即可快速获得所需要的网页数据,同时一些固定的前置后续处理可由一些稳定的开源库帮助解决,并可根据需要将关键数据保存为特定的数据格式。Scrapy 爬虫的流程如图1所示。Scrapy 强大的功能得益于他的构架,他总共有 8 个部分组成:1.2.1 Scrapy Engine 组件爬虫框架的引擎组件,是整个框架的“大脑“,负责所有组件的数据流动。1.2.2 Scheduler 组件调度器组件,负责接收并创建请求队列。1.2.3 Downloader 组件下载器组件,负责下载网页数据。1.2.4 spiders 组件爬虫模块,其功能在于从特定的网页结构数据中获取指定信息,在 Scrapy 中被定义为实体(Item)。1.2.5 Pipeline 组件负责对数据进行清理、验证以及持久化(转存数据库)的处理。1.2.6 Downloader middlewares其在引擎和下载器组件之间,功能是负责引擎发出的请求,以协调下载组件工作。

1.2.7 spider middlewares负责处理爬虫数据的输入和输出,主要是为了提高爬虫质量,可以同时使用不同功能的下载中间件。<<下转167页166 •电子技术与软件工程

Electronic Technology & Software Engineering

Data Base Technique

数据库技术•智慧旅游系统架构设计文/丁勇摘

要本文建立了一个宽覆盖和深互连的智慧旅游系统,为游客提供吃、住、行的智能旅游体验,为旅游管理和公共服务提供智能决策依据和手段,为企业和个人全面整合智能信息资源,开放信息应用平台的发展过程。【关键词】大数据分析 智慧旅游 数据架构图1:智慧旅游系统架构智能旅游系统解决了旅游部门精细管理的需要,旅游管理部门掌握了大量的管理数据,他们利用大数据分析技术进行数据驱动的社会管理。通过政府的程序化、标准化、数据化功能,实现社会管理由粗放型向精细化的转变。实现历史旅游数据的智能分析,预测未来的客流、车流等数据。它可以测量进入景区的游客数量和实时流量,方便对景区的流量进行动态控制;能够预估各种安全形势的潜在风险,提前处理突发事件,做好预测和预防工作;它可以对游客和旅游结构进行统计分析,对景区各个旅游季节进行动态票价规划,对旅游资源进行统计分析与深度开发。常态的速度很快。如何利用先进技术对海量、多样化的数据进行深度分析和应用,对海量数据进行搜索、关联和比较,实时发现潜在问题并加以预警,已成为当前亟待解决的问题。主要体现在以下两个方面:首先,现有的系统仍在结构化数据处理模式系统, 要实现对旅游企业的整体运行状况、游客出行规律等方面以时间粒度进行数据分析还存在不足。其次,在处理这些逻辑相关的过程中大量的多源异构数据,现有系统的数据存储结构,处理类型和处理效率不能满足旅游管理数据和扩大规模和1 需求背景旅游业具有产业范围广、规模大、流动性强的特点,旅游业也面临着“新常态”下的升级挑战和改革机遇,对于一般经济部门来说,新常态是经济增速放缓,人均GDP增速下降,许多传统产业正在调整结构,但旅游业进入新<<上接166页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=ient(hosts="192.168.1.108,9000",user_name="hadoop")从本地上传文件至集群_from_local("D:/","/user/hadoop/")打开一个远程节点上的文件,返回一个HttpResponse对象HttpResponse response = ("/user/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.3 结语在房地产市场领域,浩瀚的网络资源已经呈现出大数据的特点,传统的信息处理技术已经无法适应需求。针对无法进行有效数据分析的现状,本文研究利用Scrapy网络爬虫框架和HDFS 分布式文件系统进行数据的采集和存储。HDFS 能为不断增长的数据提供高度的容错、高吞吐量和分布式储存服务。通过提升大数据分析技术在房地产行业中的应用水平,充分利用 Hadoop 平台的优势,转变数据存储方式和计算模式,加强数据的分析和挖掘,提高政府及有关部门对房地产市场分析的广度和深度,更好的为政府决策、行业管理提供决策依据是下一步的主要研究工作。作者简介丁志毅(1984-),男,河南省郑州市人。郑州市房地产市场和产权交易管理中心信息技术和市场分析科,中级软件设计师,硕士研究生学历,主要从事房屋交易信息化、数据分析工作。作者单位郑州市房地产市场和产权交易管理中心 河南省郑州市 450000Electronic Technology & Software Engineering

电子技术与软件工程• 167


本文标签: 数据 旅游 进行 处理 爬取