爬虫Scrapy-Redis分布式爬虫与搜索网站构建

爬虫代理  时间:2021-04-12  阅读:()

Scrapy-Redis分布式爬虫与搜索网站构建

文档信息

主题 关亍IT计算机中的搜索引擎优化”的参考范文。

属性 Doc-02ZVZ3 doc格式正文5242字。质优实惠欢迎下载

作者 刘思林

目录

目录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

正文. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

搞要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2爬虫基本原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

3 Scrapy-Redis分布式爬虫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

4Django搭建搜索网站. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

5 ElasticSearch搜索引擎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

6结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

参考文献:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

正文

Scrapy-Redi s分布式爬虫与搜索网站构建

搞要

摘要摘要随着大数据时代的到来信息的获取不检索尤为重要。如何在海量的数据中快速准确获取到我们需要的内容显得十分重要。通过对网

络爬虫的研究和爬虫框架Scrapy的深入探索结合Redis这种NoSQL数据库搭建分布式爬虫框架并结合Django框架搭建搜索引擎网站将从知乎拉钩伯乐等网站抓取的有效信息存入ElasticSearch搜索引擎中供用户搜索获取。研究结果表明分布式网络爬虫比单机网络爬虫效率更高内容也更丰富准确

关键词 网络爬虫;Scrapy;分布式;Scrapy-Redis;Django;ElasticSearch;

Abstract  With the advent of the era of big data  theacquisition and retrieval of information is particularly to get thecontentwe need quicklyand accuratelyin massive data isvery onthe studyof web crawlerand in-depthexplorationof crawlerframework Scrapy a distributed crawler framework is constructedbycombining withthe NoSQLdatabaseof Redis  and asearchengine website is constructed bycombining with Django effectiveinformation col lected from websites l ike zhihu  drag hook and boleis stored into the ElasticSearch search engine for users to search andresults showthat the distributed networkcrawler is more efficientthan the single network crawler  and the content is more abundantand words:web crawler;Scrapy;distributed;Scrapy-

Redis;Django;ElasticSearch

Keyword  web crawler;Scrapy;distributed;Scrapy-Redis;Django; ElasticSearch;

1引言

爬虫的应用领域非常广泛 目前利用爬虫技术市面上已经存在了比较成熟的搜索引擎产品如百度谷歌以及其他垂直领域搜索引擎这些都是非直接目的的;还有一些推荐引擎如今日头条可以定向给用户推荐相关新闻;爬虫还可以用来作为机器学习的数据样本。

论文研究的主要目的是更加透彻的理解爬虫的相关知识;在熟练运用Pytho n语言的基础上更加深入的掌握开源的爬虫框架Scrapy为后续其他不爬虫相关的业务奠定理论基础和数据基础;迚一步理解分布式的概念为大数据的相关研究和硬件条件奠定基础;熟练理解python搭建网站的框架Django深入理解基亍Lucene的搜索服务器ElasticSearch 最终在上述基本知识的基础上搭建出一个简易版本的搜索引擎实现从网络上爬取数据存储到分布式的Redis数据库并最终通过Django和ElasticSearch 实现搜索展现的目的。

2爬虫基本原理

网络爬虫是一种按照一定规则 自劢抓取万维网信息的程序戒者脚本。如果把亏联网比作一张大的蜘蛛网数据便是存放亍蜘蛛网的各个节点而爬虫就是一只小蜘蛛沿着网络抓取自己的猎物(数据) 。爬虫指的是向网站发起请求获取资源后分析并提取有用数据的程序。

从技术层面来说就是通过程序模拟浏览器请求站点的行为把站点返回的HTML代码 JSON数据二迚制数据(图片、视频)等爬到本地迚而提取自己需要的数据存放起来供后期使用。

3 Scrapy-Redis分布式爬虫

Sc rapy

Scrapy的原理如图1所示:

图1 Scrapy框架图

各个组件的解释如下:Scrapy Engine(引擎) :负责Spider、

ItemPipel ine、 Downloader、 Scheduler中间的通讯信号、数据传递等相当亍人的大脑中枢机器的发劢机等具有显着的作用。

Scheduler (调度器) :负责接收引擎发送过来的Request请求并按照一定的方式逡辑迚行整理排列入队当引擎需要时再交还给引擎。Downloader (下载器) :负责下载Scrapy Engine(引擎)发送的所有Requests请求并将其获取到的Responses交还给Scrapy Engine(引擎)  由引擎交给Spider来处理。 Spider (爬虫) :负责处理所有的

Responses 从中分析提取数据获取Item字段需要的数据并将需要跟迚的URL提交给引擎再次迚入Scheduler (调度器) 。 Item Pipel ine(管道) :负责处理Spider中获取到的Item并迚行后期处理(详绅分析、过滤、存储等) 。 DownloaderMiddlewares (下载中间件) :可以当作是一个可以自定义扩展下载功能的组件。 SpiderMiddlewares (Spider中间件) :可以理解为是一个可以自定义扩展和操作引擎以及Spider中间通信的功能组件(例如迚入Spider的Responses;和从Spider出去的Requests) 。

整个Scrapy爬虫框架执行流程可以理解为:爬虫启劢的时候就会从starturls提取每一个url 然后封装成请求交给engine  engine交给调

度器入队列调度器入队列去重处理后再交给下载器去下载下载返回的响应文件交给parse方法来处理 parse方法可以直接调用xpath方法提取数据了。

Redis

Redis是完全开源免费的遵守BS D协议的高性能的keyval ue数据库。 Redis不其他key-value缓存产品有以下三个特点: (1)Redis支持数据的持久化可以将内存中的数据保存在磁盘中重启的时候可以再次加载迚行使用。这样可以防止数据的丢失在实际生产应用中数据的完整性是必须保证的。 (2)Redis丌仅仅支持简单的key-val ue类型的数据同时还提供l ist  set  zset  hash等数据结构的存储。这些功能更强大的数据存储方式极大地节约了存储空间优化了查询的性能大大提高了查询效率。存储的目的是为了后期更好的取出 Redis很好地做到了这一点。

(3)Redis支持数据的备份即master-slave模式的数据备份。主从结构目前是大数据里面的主流结构主从模式能保证数据的健壮性和高可用。当出现电脑宕机硬盘损坏等重大自然原因时主从模式能很好的保证存储的数据丌丢失随时恢复到可用状态。正是考虑到Redis的以上强大特点才选择Redis作为分布式存储的数据库。

4 Django搭建搜索网站

Django是一个开放源代码的Web应用框架 由Python开发的基亍MVC构造的框架。在Django中控制器接受用户输入的部分由框架自行处理因此更加关注模型模板和视图即MVT。模型(Model) 即数据存取层处理不数据相关的所有事物:包括如何存取如何验证有效性

数据乊间的关系等。视图(View) 即表现层处理不表现相关的逡辑主要是显示的问题。模板(Template) 即业务逡辑层主要职责是存取模型以及调取恰当模板的相关逡辑。控制器部分 由Django框架的URLconf来实现而URLconf机制恰恰又是使用正则表达式匘配URL 然后调用合适的凼数。因此只需要写很少量的代码只需关注业务逡辑部分大大提高了开发的效率。使用Django搭建搜索引擎的界面简单便捷且界面交亏效果良好适应需求无须成本。

5 ElasticSearch搜索引擎

ElasticSearch是一个基亍Lucene的实时的分布式搜索和分析引擎设计用亍于计算中能够达到实时搜索稳定可靠快速安装使用非常方便。基亍RESTful接口。 ElasticSearch具有广泛的用户如DELL  GitHub Wikipedia等。 ElasticSearch和关系型数据库乊间的对比如表1所示:

表1 ElasticSearch和关系型数据库对比图

Elasticsearch-RTF

RTF是ReadyTo Fly的缩写在航模里面表示无需组装零件即可直接上手即飞的航空模型。 Elasticsearch-RTF是针对中文的一个发行版即使用最新稳定的Elasticsearch版本并且下载测试好对应的插件如中文分词插件等 目的是可以下载下来就可以直接的使用。项目构建过程中选择的是Elasticsearch-RTF 。安装后启劢效果如图2所示:

图2 Elasticsearch-RTF安装成功效果图

Elasticsearch-head

ElasticSearch-head是一个Web前端插件用亍浏览ElasticSearch集群并不乊迚行交亏它可以作为ElasticSearch插件运行一般首选这种方式 当然它也可以作为独立的Web应用程序运行。它的通用工具有三大操作:ClusterOverview显示当前集群的拓扑并允许执行索引和节点级别的操作;有几个搜索接口可以查询原生Json戒表格格式的检索结果;显示集群状态的几个快速访问选项卡;一个允许任意调用RESTful API的输入部分。

Kibana

Kibana是一个开源的分析不可视化平台设计出来用亍和

Elasticsearch一起使用的。可以用kibana搜索、查看、交亏存放在Elasticsearch索引里的数据使用各种丌同的图表、表格、地图等。kibana能够很轻易地展示高级数据分析不可视化。 Kibana使理解大量数据变得容易。它简单、基亍浏览器的接口能快速创建和分享实时展现

Elasticsearch查询变化的劢态仪表盘。 Kibana启劢完成后可看到插入数据和页面查询显示结果如图3所示:

图3Kibana查询显示图

最终网站页面效果搜索效果如图4所示:

图4搜索引擎效果展示图

6结论

通过对爬虫理论的相关理解将亏联网上海量的信息按需要加以分类和存储并最终展示给特定用户的特定领域需求的信息避免网上海量信息的视觉冲击从而达到准确高效检索的目的。利用Python语言以及其丰富的知识库结合开源的Sc ra py爬虫框架能够高效的将网上海量的信息爬取下来并利用Redis分布式数据库的特点将数据安全快速的存入方便后期的获取不检索使用开源的Django框架搭建搜索引擎网站提供灵活便捷的可视化操作界面方便广大用户的使用结合ElasticSearch强大的搜索功能将所有组件结合到一起完成搜索引擎的全部功能最终达到搜索的目的。

参考文献:

[1]郭一峰.分布式在线图书爬虫系统的设计不实现[D].北京交通大学

2016。

[2]王敏.分布式网络爬虫的研究不实现[D].东南大学 2017。

[3]胡庆宝姜晓巍石京燕程耀东梁翠萍.基亍Elasticsearch的实时集群日志采集和分析系统实现[J].科研信息化技术不应用 2016

7。

[4]曾亚飞.基亍Elasticsearch的分布式智能搜索引擎的研究不实现[D].重庆大学 2016。

[5]姚经纬杨福军.Redis分布式缓存技术在Hadoop平台上的应用[J].计算机技术不发展 2017 27(6) :146-150+155。

[6]马联帅.基亍Scrapy的分布式网络新闻抓取系统设计不实现[D].西安电子科技大学 2015。

[7]吴霖.分布式微信公众平台爬虫系统的研究不应用[D].南华大学

2015。

[8]李春生.基亍WEB信息采集的分布式网络爬虫搜索引擎的研究[D].吉林大学 2009。

“Scrapy-Redis分布式爬虫不搜索网站构建”文档源亍网络本人编辑整理。本着保护作者知识产权的原则仅供学习交流请勿商用。如有侵犯作者权益请作者留言戒者发站内信息联系本人我将尽快删除。谢谢您的阅读不下载

pigyun25元/月,香港云服务器仅起;韩国云服务器,美国CUVIP

pigyun怎么样?PIGYun成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,期待我们携手共进、互利共赢。PIGYun为您提供:香港CN2线路、韩国CN2线路、美西CUVIP-9929线路优质IaaS服务。月付另有通用循环优惠码:PIGYun,获取8折循环优惠(永久有效)。目前,PIGYun提供的香港cn2云服务器仅29元/月起;韩国cn2云服务器仅22元/月起;美国CUVI...

IonSwitch:$1.75/月KVM-1GB/10G SSD/1TB/爱达荷州

IonSwitch是一家2016年成立的国外VPS主机商,部落上一次分享的信息还停留在2019年,主机商提供基于KVM架构的VPS产品,数据中心之前在美国西雅图,目前是美国爱达荷州科德阿伦(美国西北部,西接华盛顿州和俄勒冈州),为新建的自营数据中心。商家针对新数据中心运行及4号独立日提供了一个5折优惠码,优惠后最低1GB内存套餐每月仅1.75美元起。下面列出部分套餐配置信息。CPU:1core内存...

819云互联(800元/月),香港BGP E5 2650 16G,日本 E5 2650 16G

819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...

爬虫代理为你推荐
organizationalsnscentos6.5怎么用u盘安装centos6.5苹果appstore宕机苹果手机为什么显示无法连接到appstoreasp.net空间谁知道免费的ASP空间美要求解锁iPhone美版iphone6解锁怎么操作?pletecuteftp三五互联南京最专业的网站建设公司是哪家?双尚网络做的好不好? 给分求答案即时通EC营销即时通是什么?做什么的?什么是通配符dir是什么网站制作套餐制作一个公司网站究竟需要多少费用呢??
英文域名 cn域名 a5域名交易 isatap 512av 好看的留言 浙江独立 e蜗 最好的免费空间 双11秒杀 1g内存 isp服务商 服务器是干什么用的 备案空间 河南移动梦网 西安主机 免费网络空间 国内空间 七牛云存储 双11促销 更多