一、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相关推荐

  1. Python爬虫—Scrapy框架—Win10下载安装

    Python爬虫-Scrapy框架-Win10下载安装 1. 下载wheel 2.下载twisted 3. 下载pywin32 4. 下载安装Scrapy 5. 创建一个scrapy项目 6. fir ...

  2. python cookie池_Python爬虫scrapy框架Cookie池(微博Cookie池)的使用

    下载代码Cookie池(这里主要是微博登录,也可以自己配置置其他的站点网址) 下载代码GitHub:https://github.com/Python3WebSpider/CookiesPool 下载 ...

  3. python scrapy爬虫视频_python爬虫scrapy框架的梨视频案例解析

    之前我们使用lxml对梨视频网站中的视频进行了下载 下面我用scrapy框架对梨视频网站中的视频标题和视频页中对视频的描述进行爬取 分析:我们要爬取的内容并不在同一个页面,视频描述内容需要我们点开视频 ...

  4. Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...

  5. python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取

    python爬虫–Scrapy框架–Scrapy+selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段,对使用scrapy + selenium进行政策文本爬虫进行记录.用于个人爬虫学习记 ...

  6. Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider

    Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider 写在前面 初探Crawl Spider 创建Crawl Spider项目 对比Basic与Crawl ...

  7. python 爬虫框架_Python网络爬虫-scrapy框架的使用

    1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...

  8. python多线程框架_Python爬虫第七天:多线程爬虫|Scrapy框架

    内容简述: 一:多线程爬虫 二:Scrapy框架 一:多线程爬虫原理 [示例见代码] 二:Scrapy框架 定义:Scrapy是基于Python实现,方便爬取网站数据.提取结构性数据的应用框架. 底层 ...

  9. Python爬虫——Scrapy框架

    Scrapy是用python实现的一个为了爬取网站数据,提取结构性数据而编写的应用框架.使用Twisted高效异步网络框架来处理网络通信. Scrapy架构: ScrapyEngine:引擎.负责控制 ...

最新文章

  1. 理解 CSS 布局和块级格式上下文
  2. java restfulapi 返回文件base64_Java反序列化:一次构造后Ysoserial Payload
  3. dslJson、jsoniter、fastjson、jackson解析字符串为map效率比较
  4. GO程序调用C及C++库的实现方式
  5. Application provided invalid, non monotonically increasing dts to muxer in stream 0: -92233720368547
  6. 在python中terminal中建立mysql数据库,无法再models.py 文件中建立数据库信息
  7. Hbase PageFilter 取出数量不准确问题
  8. P1030求先序排列
  9. 分布式事务实践 解决数据一致性 分布式事务实现:消息驱动模式
  10. 网易云深度学习第一课第二周编程作业
  11. IntelliJ IDEA 2018.2.2远程调试Tomcat的配置方法
  12. Codeforces Round #371 (Div. 2) C. Sonya and Queries 水题
  13. C#中Socket用法,多个聊天和单一聊天。
  14. FTP、TFTP、NFS、SSH介绍及在 Ubuntu 上的安装配置
  15. 在二维码中间添加logo或者图片
  16. HashMap底层原理与扩容机制
  17. springBoot添加日志管理
  18. 一根木根随机折成三截能拼成三角形的概率
  19. windows安装cygwin
  20. 计算机基本应用能力,计算机应用能力基本.ppt

热门文章

  1. 张量/tensor--详解
  2. python 函数调用之后,赋值不变,只是引用。全局变量和局部变量(一分钟读懂)
  3. docker php kafka,docker安装kafka
  4. 计算机网络 故障处理,计算机网络通讯技术故障分析与处理
  5. java 字符串常用函数_Java学习笔记35:Java常用字符串操作函数
  6. 【机器学习-西瓜书】八、集成学习:Boosting
  7. keras中的模型保存和加载
  8. [转]Vue生态系统中的库
  9. 树莓派入门教程 - 0 - 准备篇 - 0.3 树莓派串口访问终端
  10. leetcode885.SpiralMatrixIII