简述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采用raw_input读取输入值的方法
Aug 18 Python
python连接oracle数据库实例
Oct 17 Python
python动态性强类型用法实例
May 09 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
Python2随机数列生成器简单实例
Sep 04 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
用python处理MS Word的实例讲解
May 08 Python
Python函数中不定长参数的写法
Feb 13 Python
Django 多环境配置详解
May 14 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
Python机器学习之PCA降维算法详解
May 19 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_map()数组函数使用说明
2011/07/12 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
微信小程序自定义组件
2017/08/16 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
Js面试算法详解
2018/04/08 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
在Python中使用元类的教程
2015/04/28 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python django中8000端口被占用的解决
2019/12/17 Python
python实现人工蜂群算法
2020/09/18 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
材料采购员岗位职责
2013/12/17 职场文书
高中生家长寄语大全
2014/04/03 职场文书
养牛场项目建议书
2014/05/13 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
redis 查看所有的key方式
2021/05/07 Redis
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技