毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
Python针对社区论坛BBS的网络爬虫系统设计(4)
2 爬虫相关技术
2.1 scrapy网络爬虫框架
对网络爬虫的技术研究目前来说发展的已经比较成熟,想要实现对特定论坛指定内容的爬取一般需要经过定制。Scrapy是一款基于Twisted的异步处理数据的网络爬虫框架,全部编码都由Python完成,因为Python的特性—使编程简单化,所以scrapy对使修改来说仅需定制某几个模块的部分代码即可以轻松创建一个用户自己的爬虫,用来抓取网页上你所需要的信息。本文采用scrapy作为论坛数据提取的定制爬虫。本节将重点介绍scrapy框架。
2.1.1 scrapy组成
Scrapy是一个为了方便普通编程人员爬取网站数据提取结构性数据而编写的应用框架。它用途多样,从数据挖掘到
自动化
测试,如今已有很多企业采用scrapy作为其工作
软件
。Scrapy是基于Twisted,编程语言使用的是纯Python。虽然Scrapy所使用的开发方法很简单,但提供了几乎其他任何网络爬虫所需的所有特性。对开发人员只需花很少的时间和精力来学习这个框架。应为是采用Python语言编写的,所以其具备很好的可移植性,不需要做任何修改它就可以成功运行在window、Linux、MacOS等各个平台上。
Scrapy的组成部分包括引擎(scrapy engine)、调度器(scheduler)、蜘蛛(spider)、数据处理流水线(item pipeline)和下载器(downloader)五个部分。另外还有为改善爬虫性能说需的各种中间件。这五个部分详细功能如下:
1. scrapy引擎(scrapy engine)
引擎是整个scrapy系统的控制中心、大脑和心脏。scrapy系统的数据事务处理、处理流程、接收响应其他各个模块的请求都由它来控制。
2. 调度器(scheduler)
调度器是一个队列用来记录并文护一个爬取优先级的,其记录着爬虫在下一个爬取操作时要爬取的网页的URL,它的运行逻辑是从引擎接收请求并记入待爬取队列,并在引擎提出爬取请求后返回页面URL。这个队列每个爬虫拥有一个,不同的爬虫间不可共享,也不可保存,当程序结束后,队列里信息也同时消失。
3. 蜘蛛(spider)
蜘蛛模块规定爬取的动作和所爬取的内容,并通过预设算法抽取需进一步爬取的链接,本模块需用户自己编写,用户定义特定网页的抓取与解析规则来指导蜘蛛去处理的用户指定的一个或一组域名。其处理流程为:从start_urls队列获取所需爬取的第一个网页的初始请求,当请求被响应后调用指定回调函数来处理页面。第一个请求是通过调用蜘蛛的start_requests()方法生成的。蜘蛛分析出的结果分为两类:一是需继续抓取的链接;另一种是用户指定的需要处理的数据,两种结果可以混在同一个结果列表中返回将数据封装成item,请求链接则是request类型,request会再次转发给调度器进行下一步,及重复上步。
4. 数据处理流水线(item pipeline)
数据处理流水线存储、分析、过滤数据。他是一整套针对数据流水操作。数据操作由用户自己定义,还可以在setting文件中设置处理模块的优先级。通常其所负担的工作有:数据的清洗、去重、存储等等。
5. 下载器(downloader)
下载器的作用是从scrapy引擎处获取需要下载的URL,并向网站所在的服务器发送请求并将网页下载。因网页的传输协议不一样,如http和FTP等,此时需借助下载中间件来实现。
6. 中间件(Middlewares)
顾名思义中间件就是位于个模块之间的小模块,主要用来解决scrapy引擎与各模块之间的请求及响应。这是scrapy为了满足不同用户不同的需求,允许用户自定义模块来扩展scrapy功能。Scrapy的中间件有下载中间件,调度中间件等。如HttpProxyMiddleware—Http代理。
共5页:
上一页
1
2
3
4
5
下一页
上一篇:
面向城市道路环境的车辆检测算法的设计
下一篇:
android智能手机安全卫士手机防盗系统
H5动漫社区网站设计
Python+mysql宠物领养平台的设计与实现
基于社区阅览室管理系统的设计与实现
Python广告投放分类问题中的特征提取方法
python基于决策树算法的球赛预测
asp.net+sqlserver社区医院病员...
Python船联网传感器感知模块研究与实现
AES算法GPU协处理下分组加...
浅论职工思想政治工作茬...
STC89C52单片机NRF24L01的无线病房呼叫系统设计
提高教育质量,构建大學生...
基于Joomla平台的计算机学院网站设计与开发
从政策角度谈黑龙江對俄...
上海居民的社会参与研究
压疮高危人群的标准化中...
酵母菌发酵生产天然香料...
浅谈高校行政管理人员的...