简述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日期时间转为字符串或者格式化输出的实例
May 29 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
python-opencv颜色提取分割方法
Dec 08 Python
神经网络相关之基础概念的讲解
Dec 29 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
深入了解python中元类的相关知识
Aug 29 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
如何在django中运行scrapy框架
Apr 22 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
五种Python转义表示法
Nov 27 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
简述vue中的config配置
2018/01/23 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
Python中的枚举类型示例介绍
2019/01/09 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
环保建议书作文
2014/03/12 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
致运动员赞词
2015/07/22 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书