简述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中的编码知识整理汇总
Jan 26 Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
Python map及filter函数使用方法解析
Aug 06 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
Python面向对象之内置函数相关知识总结
Jun 24 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 array操作10个小技巧分享
2011/06/23 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python3中的json模块使用详解
2018/05/05 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
银行毕业实习自我鉴定
2013/09/19 职场文书
历史学专业毕业生求职信
2013/09/27 职场文书
会计自我鉴定
2013/11/02 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
慰问信范文
2015/02/14 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
素质拓展训练感想
2015/08/07 职场文书
2016教师节感恩话语
2015/12/09 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript