twisted python_Python爬虫Scrapy框架之Hello Word
一、Scrapy简介
Scrapy是由Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
二、Scrapy运行架构图
1、引擎(Scrapy)
用来处理整个系统的数据流处理, 触发事务(框架核心)。
2、调度器(Scheduler)
用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址。
3、下载器(Downloader)
用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)。
4、爬虫(Spiders)
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。
5、项目管道(Pipeline)
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
6、下载器中间件(Downloader Middlewares)
位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。
7、爬虫中间件(Spider Middlewares)
介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。
8、调度中间件(Scheduler Middewares)
介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。
运行流程
1. 引擎从调度器中取出一个链接(URL)用于接下来的抓取
2. 引擎把URL封装成一个请求(Request)传给下载器
3. 下载器把资源下载下来,并封装成应答包(Response)
4. 爬虫解析Response
5. 解析出实体(Item),则交给实体管道进行进一步的处理
6. 解析出的是链接(URL),则把URL交给调度器等待抓取
三、Scrapy安装
1、 安装python环境
Python环境略
2、 安装Scrapy环境
因为Scrapy安装时依赖其它包,所以在安装之前需要先安装相应的其它包。其它包离线下载地址(http://www.lfd.uci.edu/~gohlke/pythonlibs/)。依赖图如下:
- 安装lxml包
方法一:在线安装
命令:pip install lxml
方法二:离线安装,第一步:下载lxml对应版本(python版本和系统版本)文件,第二步:通过命令安装。
命令:pip install 文件名
- 安装twisted包
方法一:在线安装
命令:pip install twisted
方法二:离线安装,第一步:下载twisted对应版本(python版本和系统版本)文件,第二步:通过命令安装。
命令:pip install 文件名
备注:如果在安装各个包的时候还提示有问题,在根据提示信息安装对应的包即可。
3、 验证Scrapy环境
命令:scrapy --version
四、Scrapy之Demo
1、 创建Scrapy爬虫项目
1.CMD命令: scrapy startproject baqiwudi
2.系统自动生成的文件结构如下图:
2、 创建Scrapy爬虫
1.进入刚创建项目的目录,执行创建命令
CMD命令: scrapy genspider -t basic helloWord www.baidu.com
2.系统自动生成1个爬虫文件如下图:
3、 编写Scrapy爬虫
1.打开上步的爬虫文件(helloWord.py)
2.重写parse方法如下。
因为是helloword所以直接将返回的response直接输出。代码如下:
4、 运行Scrapy爬虫
1.进入和爬虫文件同级目录,执行运行命令
CMD命令:scrapy crawl helloWord (备注:”helloWord为爬虫中定义的名字,切记切记”)
2.查看结果
五、 总结
该事例只是一个简单的demo,完全体现不出来Scrapy的强大之处,Scrapy的强大个人认为还有以下几点需要学习。
1. Response.xpath:解析html数据包中的数据方式。
2. 抓取到的信息持久化。
3. 登录后抓取数据信息。
4. ……
PS:小弟不才,略知一二,欢迎大家关注、评论、转发。
twisted python_Python爬虫Scrapy框架之Hello Word相关推荐
- Python爬虫—Scrapy框架—Win10下载安装
Python爬虫-Scrapy框架-Win10下载安装 1. 下载wheel 2.下载twisted 3. 下载pywin32 4. 下载安装Scrapy 5. 创建一个scrapy项目 6. fir ...
- python cookie池_Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
下载代码Cookie池(这里主要是微博登录,也可以自己配置置其他的站点网址) 下载代码GitHub:https://github.com/Python3WebSpider/CookiesPool 下载 ...
- python scrapy爬虫视频_python爬虫scrapy框架的梨视频案例解析
之前我们使用lxml对梨视频网站中的视频进行了下载 下面我用scrapy框架对梨视频网站中的视频标题和视频页中对视频的描述进行爬取 分析:我们要爬取的内容并不在同一个页面,视频描述内容需要我们点开视频 ...
- Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...
- python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取
python爬虫–Scrapy框架–Scrapy+selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段,对使用scrapy + selenium进行政策文本爬虫进行记录.用于个人爬虫学习记 ...
- Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider
Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider 写在前面 初探Crawl Spider 创建Crawl Spider项目 对比Basic与Crawl ...
- python 爬虫框架_Python网络爬虫-scrapy框架的使用
1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...
- python多线程框架_Python爬虫第七天:多线程爬虫|Scrapy框架
内容简述: 一:多线程爬虫 二:Scrapy框架 一:多线程爬虫原理 [示例见代码] 二:Scrapy框架 定义:Scrapy是基于Python实现,方便爬取网站数据.提取结构性数据的应用框架. 底层 ...
- Python爬虫——Scrapy框架
Scrapy是用python实现的一个为了爬取网站数据,提取结构性数据而编写的应用框架.使用Twisted高效异步网络框架来处理网络通信. Scrapy架构: ScrapyEngine:引擎.负责控制 ...
最新文章
- 理解 CSS 布局和块级格式上下文
- java restfulapi 返回文件base64_Java反序列化:一次构造后Ysoserial Payload
- dslJson、jsoniter、fastjson、jackson解析字符串为map效率比较
- GO程序调用C及C++库的实现方式
- Application provided invalid, non monotonically increasing dts to muxer in stream 0: -92233720368547
- 在python中terminal中建立mysql数据库,无法再models.py 文件中建立数据库信息
- Hbase PageFilter 取出数量不准确问题
- P1030求先序排列
- 分布式事务实践 解决数据一致性 分布式事务实现:消息驱动模式
- 网易云深度学习第一课第二周编程作业
- IntelliJ IDEA 2018.2.2远程调试Tomcat的配置方法
- Codeforces Round #371 (Div. 2) C. Sonya and Queries 水题
- C#中Socket用法,多个聊天和单一聊天。
- FTP、TFTP、NFS、SSH介绍及在 Ubuntu 上的安装配置
- 在二维码中间添加logo或者图片
- HashMap底层原理与扩容机制
- springBoot添加日志管理
- 一根木根随机折成三截能拼成三角形的概率
- windows安装cygwin
- 计算机基本应用能力,计算机应用能力基本.ppt
热门文章
- 张量/tensor--详解
- python 函数调用之后,赋值不变,只是引用。全局变量和局部变量(一分钟读懂)
- docker php kafka,docker安装kafka
- 计算机网络 故障处理,计算机网络通讯技术故障分析与处理
- java 字符串常用函数_Java学习笔记35:Java常用字符串操作函数
- 【机器学习-西瓜书】八、集成学习:Boosting
- keras中的模型保存和加载
- [转]Vue生态系统中的库
- 树莓派入门教程 - 0 - 准备篇 - 0.3 树莓派串口访问终端
- leetcode885.SpiralMatrixIII