简述python Scrapy框架


Posted in Python onAugust 17, 2020

一、Scrapy框架简介

Scrapy是用纯Python实现一个为了爬取网站数据,提取结构性数据而编写的应用框架,用途非常广泛。利用框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常的方便。它使用Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。Scrapy是Python世界里面最强大的爬虫框架,它比BeautifulSoup更加完善,BeautifulSoup可以说是轮子,而Scrapy则是车子,不需要关注太多的细节。

二、Scrapy原理

1.ScrapyEngine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号数据传递等。

2.Scheduler(调度器):它负责接受引擎发送过来的request请求,并按照定的方式进行整理排列,入队,当引擎需要时,交还给引擎。

3.Downloader(下载器):负责下载ScrapyEngine发送的所有requests请求,并将其获取到的responses交还给ScrapyEngine,由引擎交给Spider来处理。

4.Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取ltem字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler。

5.ItemPipeline(管道):它负责处理Spider中获取到的ltem,并进行进行后期处理,详细分析,过滤,存储等的地方。

6.DownloaderMiddlewares(下载中间件):它是一个可以自定义扩展下载功能的组件。

7.SpiderMiddlewares(Spider中间件):它是一个可以自定扩展和操作引擎和Spider中间通信的功能组件比如进入Spider的Responses,和从Spider出去的Requests。

三、创建Scrapy项目

新建项目命令:

scrapy startproject xxx

在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,运行下列命令:

scrapy startproject xxx

其中,xxx为项目名称,可以看到将会创建一个xxx文件夹,目录结构大致如下:

简述python Scrapy框架

四、创建爬虫

创建爬虫的命令:

scrapy genspider 爬虫名字网站域名

应当注意的是爬虫名字不要和项目名字一-样,网站域名是允许爬虫采集的域名如,baidu. com,zhihu. com。创建后python文件如下:

简述python Scrapy框架

五、总结

Scrapy框架相当于一辆造好的车子,只要我们会开,我们就可以利用这辆车子去到任意想去的地方。通常我们使用的request的方法就相当于在出发前再去造一辆车子,这是相当麻烦的。学好Scrapy,对于网上80%的网站我们都可以进行爬取。

以上就是简述python Scrapy框架的详细内容,更多关于python Scrapy框架的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python计算三维矢量幅度的方法
Jun 15 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
谈谈如何手动释放Python的内存
Dec 17 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
python paramiko模块学习分享
Aug 23 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
python 除法保留两位小数点的方法
Jul 16 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
实例代码讲解Python 线程池
Aug 24 Python
python中pyqtgraph知识点总结
Jan 26 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
python使用多线程查询数据库的实现示例
Aug 17 #Python
python使用建议与技巧分享(一)
Aug 17 #Python
Python2.6版本pip安装步骤解析
Aug 17 #Python
python中pathlib模块的基本用法与总结
Aug 17 #Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 #Python
详解python datetime模块
Aug 17 #Python
python实现梯度下降算法的实例详解
Aug 17 #Python
You might like
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
PHP 断点续传实例详解
2017/11/11 PHP
php链式操作的实现方式分析
2019/08/12 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
js css自定义分页效果
2017/02/24 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
Python最长公共子串算法实例
2015/03/07 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python计算IV值的示例讲解
2020/02/28 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
Python 随机按键模拟2小时
2020/12/30 Python
文秘专业个人求职信
2013/12/22 职场文书
小区门卫值班制度
2014/01/24 职场文书
考核工作实施方案
2014/03/30 职场文书
小学一年级评语大全
2014/04/22 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python