简述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 相关文章推荐
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
Python中static相关知识小结
Jan 02 Python
对python3 一组数值的归一化处理方法详解
Jul 11 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
Python使用Pandas库常见操作详解
Jan 16 Python
使用python的pyplot绘制函数实例
Feb 13 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 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如何抛出异常处理错误
2011/03/02 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
python numpy元素的区间查找方法
2018/11/14 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
基于FME使用Python过程图解
2020/05/13 Python
Python 发送邮件方法总结
2020/08/10 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
西尔斯百货官网:Sears
2016/09/06 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
自荐信写法介绍
2014/01/25 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
银行求职信
2014/05/31 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
余世维讲座观后感
2015/06/11 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js