Scrapy-Redis分布式爬虫与搜索网站构建,搜索引擎论文.docx

上传人:安*** 文档编号:73337671 上传时间:2023-02-17 格式:DOCX 页数:9 大小:21.71KB
返回 下载 相关 举报
Scrapy-Redis分布式爬虫与搜索网站构建,搜索引擎论文.docx_第1页
第1页 / 共9页
Scrapy-Redis分布式爬虫与搜索网站构建,搜索引擎论文.docx_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《Scrapy-Redis分布式爬虫与搜索网站构建,搜索引擎论文.docx》由会员分享,可在线阅读,更多相关《Scrapy-Redis分布式爬虫与搜索网站构建,搜索引擎论文.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Scrapy-Redis分布式爬虫与搜索网站构建,搜索引擎论文摘 要: 随着大数据时代的到来, 信息的获取与检索尤为重要。怎样在海量的数据中快速准确获取到我们需要的内容显得特别重要。通过对网络爬虫的研究和爬虫框架Scrapy的深切进入探寻求索, 结合Redis这种NoSQL数据库搭建分布式爬虫框架, 并结合Django框架搭建搜索引擎网站, 将从知乎, 拉钩, 伯乐等网站抓取的有效信息存入ElasticSearch搜索引擎中, 供用户搜索获取。研究结果表示清楚分布式网络爬虫比单机网络爬虫效率更高层次, 内容也更丰富准确。 本文关键词语: 网络爬虫; Scrapy; 分布式; Scrapy-Re

2、dis; Django; ElasticSearch; Abstract: With the advent of the era of big data, the acquisition and retrieval of information is particularly important.How to get the content we need quickly and accurately in massive data is very important.Based on the study of web crawler and in-depth exploration of c

3、rawler framework Scrapy, a distributed crawler framework is constructed by combining with the NoSQL database of Redis, and a search engine website is constructed by combining with Django framework.The effective information collected from websites like zhihu, drag hook and bole is stored into the Ela

4、sticSearch search engine for users to search and obtain.The results show that the distributed network crawler is more efficient than the single network crawler, and the content is more abundant and accurate.Key words:web crawler;Scrapy;distributed;Scrapy-Redis;Django;ElasticSearch Keyword: web crawl

5、er; Scrapy; distributed; Scrapy-Redis; Django; ElasticSearch; 1 引言 爬虫的应用领域非常广泛, 当前利用爬虫技术市面上已经存在了比拟成熟的搜索引擎产品, 如百度, 谷歌以及其他垂直领域搜索引擎, 这些都是非直接目的的;还有一些推荐引擎, 如今日头条, 能够定向给用户推荐相关新闻;爬虫还能够用来作为机器学习的数据样本。 论文研究的主要目的是愈加透彻的理解爬虫的相关知识;在熟练运用Python语言的基础上, 愈加深切进入的把握开源的爬虫框架Scrapy, 为后续其他与爬虫相关的业务奠定理论基础和数据基础;进一步理解分布式的概念, 为大

6、数据的相关研究和硬件条件奠定基础;熟练理解python搭建网站的框架Django, 深切进入理解基于Lucene的搜索服务器ElasticSearch, 最终在上述基本知识的基础上, 搭建出一个简易版本的搜索引擎, 实现从网络上爬取数据, 存储到分布式的Redis数据库, 并最终通过Django和ElasticSearch, 实现搜索展现的目的。 2 爬虫基本原理 网络爬虫是一种根据一定规则, 自动抓取万维网信息的程序或者脚本。假如把互联网比作一张大的蜘蛛网, 数据便是存放于蜘蛛网的各个节点, 而爬虫就是一只小蜘蛛, 沿着网络抓取自个的猎物 (数据) 。爬虫指的是, 向网站发起请求, 获取资源

7、后分析并提取有用数据的程序。 从技术层面来讲就是通经过序模拟阅读器请求站点的行为, 把站点返回的代码, JSON数据, 二进制数据 (图片、视频) 等爬到本地, 进而提取自个需要的数据, 存放起来供后期使用。 3 Scrapy-Redis分布式爬虫 3.1 Scrapy Scrapy的原理如此图1所示: 图1 Scrapy框架图 各个组件的解释如下:Scrapy Engine (引擎) :负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯, 信号、数据传递等, 相当于人的大脑中枢, 机器的发动机等, 具有显着的作用。Scheduler (调度器) :

8、负责接收引擎发送过来的Request请求, 并根据一定的方式逻辑进行整理排列, 入队, 当引擎需要时, 再交还给引擎。Downloader (下载器) :负责下载Scrapy Engine (引擎) 发送的所有Requests请求, 并将其获取到的Responses交还给Scrapy Engine (引擎) , 由引擎交给Spider来处理。Spider (爬虫) :负责处理所有的Responses, 从中分析提取数据, 获取Item字段需要的数据, 并将需要跟进的URL提交给引擎, 再次进入Scheduler (调度器) 。Item Pipeline (管道) :负责处理Spider中获取到

9、的Item, 并进行后期处理 (具体分析、过滤、存储等) 。Downloader Middlewares (下载中间件) :能够当作是一个能够自定义扩展下载功能的组件。Spider Middlewares (Spider中间件) :能够理解为是一个能够自定义扩展和操作引擎以及Spider中间通信的功能组件 (例如进入Spider的Responses;和从Spider出去的Requests) 。 整个Scrapy爬虫框架执行流程能够理解为:爬虫启动的时候就会从starturls提取每一个url, 然后封装成请求, 交给engine, engine交给调度器入队列, 调度器入队列去重处理后再交给下

10、载器去下载, 下载返回的响应文件交给parse方式方法来处理, parse方式方法能够直接调用xpath方式方法提取数据了。 3.2 Redis Redis是完全开源免费的, 遵守BSD协议的, 高性能的keyvalue数据库。Redis与其他key-value缓存产品有下面三个特点: (1) Redis支持数据的持久化, 能够将内存中的数据保存在磁盘中, 重启的时候能够再次加载进行使用。这样能够防止数据的丢失, 在实际生产应用中数据的完好性是必须保证的。 (2) Redis不仅仅支持简单的key-value类型的数据, 同时还提供list, set, zset, hash等数据构造的存储。这

11、些功能更强大的数据存储方式极大地节约了存储空间, 优化了查询的性能, 大大提高了查询效率。存储的目的是为了后期更好的取出, Redis很好地做到了这一点。 (3) Redis支持数据的备份, 即master-slave形式的数据备份。主从构造当前是大数据里面的主流构造, 主从形式能保证数据的强健性和高可用。当出现电脑宕机, 硬盘损坏等重大自然原因时, 主从形式能很好的保证存储的数据不丢失, 随时恢复到可用状态。正是考虑到Redis的以上强大特点, 才选择Redis作为分布式存储的数据库。 4 Django搭建搜索网站 Django是一个开放源代码的Web应用框架, 由Python开发的基于MV

12、C构造的框架。在Django中, 控制器接受用户输入的部分由框架自行处理, 因而愈加关注模型, 模板和视图, 即MVT。模型 (Model) , 即数据存取层, 处理与数据相关的所有事物:包括怎样存取, 怎样验证有效性, 数据之间的关系等。视图 (View) , 即表现层, 处理与表现相关的逻辑, 主要是显示的问题。模板 (Template) , 即业务逻辑层, 主要职责是存取模型以及调取恰当模板的相关逻辑。控制器部分, 由Django框架的URLconf来实现, 而URLconf机制恰恰又是使用正则表示出式匹配URL, 然后调用适宜的函数。因而只需要写很少量的代码, 只需关注业务逻辑部分,

13、大大提高了开发的效率。使用Django搭建搜索引擎的界面, 简单便捷且界面交互效果良好, 适应需求, 无须成本。 5 ElasticSearch搜索引擎 ElasticSearch是一个基于Lucene的实时的分布式搜索和分析引擎, 设计用于云计算中, 能够到达实时搜索, 稳定, 可靠, 快速, 安装使用非常方便。基于RESTful接口。ElasticSearch具有广泛的用户, 如DELL, GitHub, Wikipedia等。ElasticSearch和关系型数据库之间的比照如表1所示: 表1 ElasticSearch和关系型数据库比照图 5.1 Elasticsearch-RTF R

14、TF是Ready To Fly的缩写, 在航模里面, 表示无需组装零件即可直接上手即飞的航空模型。Elasticsearch-RTF是针对中文的一个发行版, 即便用最新稳定的Elasticsearch版本, 并且下载测试好对应的插件, 如中文分词插件等, 目的是能够下载下来就能够直接的使用。项目构建经过中选择的是Elasticsearch-RTF 5.1.1版本。安装后启动, 效果如此图2所示: 图2 Elasticsearch-RTF安装成成效果图 5.2 Elasticsearch-head ElasticSearch-head是一个Web前端插件, 用于阅读ElasticSearch集群

15、并与之进行交互, 它能够作为ElasticSearch插件运行, 一般首选这种方式, 当然它可以以作为独立的Web应用程序运行。它的通用工具有三大操作:ClusterOverview, 显示当下集群的拓扑, 并允许执行索引和节点级别的操作;有几个搜索接口能够查询原生Json或表格格式的检索结果;显示集群状态的几个快速访问选项卡;一个允许任意调用RESTful API的输入部分。 5.3 Kibana Kibana是一个开源的分析与可视化平台, 设计出来用于和Elasticsearch一起使用的。能够用kibana搜索、查看、交互存放在Elasticsearch索引里的数据, 使用各种不同的图表

16、、表格、地图等。kibana能够很轻易地展示高级数据分析与可视化。Kibana使理解大量数据变得容易。它简单、基于阅读器的接口能快速开创建立和共享实时展现Elasticsearch查询变化的动态仪表盘。Kibana启动完成后, 可看到插入数据和页面查询显示结果如此图3所示: 图3 Kibana查询显示图 最终网站页面效果搜索效果如此图4所示: 图4 搜索引擎效果展示图 6 结论 通过对爬虫理论的相关理解, 将互联网上海量的信息按需要加以分类和存储, 并最终展示给特定用户的特定领域需求的信息, 避免网上海量信息的视觉冲击, 进而到达准确, 高效检索的目的。利用Python语言以及其丰富的知识库,

17、 结合开源的Scrapy爬虫框架, 能够高效的将网上海量的信息爬取下来, 并利用Redis分布式数据库的特点, 将数据安全, 快速的存入, 方便后期的获取与检索, 使用开源的Django框架搭建搜索引擎网站, 提供灵敏便捷的可视化操作界面, 方便广大用户的使用, 结合ElasticSearch强大的搜索功能, 将所有组件结合到一起, 完成搜索引擎的全部功能, 最终到达搜索的目的。 以下为参考文献: 1 郭一峰.分布式在线图书爬虫系统的设计与实现D.北京交通大学, 2021. 2 王敏.分布式网络爬虫的研究与实现D.东南大学, 2021. 3 胡庆宝, 姜晓巍, 石京燕, 程耀东, 梁翠萍.基于

18、Elasticsearch的实时集群日志采集和分析系统实现J.科研信息化技术与应用, 2021, 7. 4 曾亚飞.基于Elasticsearch的分布式智能搜索引擎的研究与实现D.重庆大学, 2021. 5 姚经纬, 杨福军.Redis分布式缓存技术在Hadoop平台上的应用J.计算机技术与发展, 2021, 27 (6) :146-150+155. 6 马联帅.基于Scrapy的分布式网络新闻抓取系统设计与实现D.西安电子科技大学, 2021. 7 吴霖.分布式微信公众平台爬虫系统的研究与应用D.南华大学, 2021. 8 李春生.基于WEB信息采集的分布式网络爬虫搜索引擎的研究D.吉林大学, 2018.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 毕业论文 > 文化交流

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁