美文网首页Python爬虫从入门到放弃
python爬虫从入门到放弃之十三:Scrapy概念和流程

python爬虫从入门到放弃之十三:Scrapy概念和流程

作者: 52d19f475fe5 | 来源:发表于2019-07-26 21:11 被阅读3次

———为什么要学习Scrapy?

Scrapy是爬虫框架,并发性好,性能较高,适合较大的爬虫需求。

Scrapy不用管爬虫流程,只需填充好爬虫的核心逻辑代码。

Scrapy框架能够让我们的爬虫效率更高,让开发过程方便、快速。

  • 什么是爬虫框架?

爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。

爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。

  • 什么是Scrapy?

文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

Scrapy 使用了Twisted异步网络框架,可以加快我们的下载速度。

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。

  • 异步和非阻塞的区别

前面我们说Twisted是一个异步的网络框架,经常我们也听到一个词语叫做非阻塞,那么它们有什么区别呢?


异步:调用在发出之后,这个调用就直接返回,不管有无结果;异步是过程。 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。

  • Scrapy的工作流程

回顾之前的爬虫流程

上面的流程可以改写为


Scrapy的流程

其流程可以描述如下:

  1. Spiders(爬虫)封装Requests对象→爬虫中间件→引擎
  2. 引擎把Requests对象交给调度器→调度器把Requests对象进行排队→引擎
  3. 引擎把Requests队列交给→下载中间件→下载器发送请求,获取Response→下载中间件→引擎
  4. 引擎把Response交给→爬虫中间件→(1)Spiders(爬虫)提取url地址,封装成request对象→再执行123或执行(2)
    (2)Spiders(爬虫)提起数据→引擎→管道
  5. 管道进行数据的处理和保存

以上流程,只有加粗字体的部分是需要我们手写的

注意:
图中绿色线条的表示数据的传递
注意图中中间件的位置,决定了其作用
注意其中引擎的位置,所有的模块之前相互独立,只和引擎进行交互

scrapy中每个模块的具体作用



  • Scrapy安装

Windows系统常见的报错类型:
\color{green}{\scriptsize\mathbf{VC++14.0}}\color{green}{\scriptsize\mathbf{Twisted}}
\color{green}{\scriptsize\mathbf{win32}}

安装步骤:

1.查看自己python版本号,系统位数

上图中:64 bit表示64位,AMD64表示CPU是64位,win32表示Windows系统,不需要的

2.下载Twisted

打开网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

下载对应版本号和位数,如cp37对应Python3.7,win32表示32位,win_amd64表示64位,下载到本地

3.安装

打开PowerShell(管理员)窗口或以管理员身份运行cmd,输入pip install XXX.whl,XXX.whl是下载的Twisted离线文件

输入pip install+空格 后,把文件拖进去,按回车即可

安装完成后,不要关闭窗口,接着安装其他依赖库,输入以下命令

pip install pywin32
pip install lxml
pip install w3lib  
pip install parsel 
pip install cryptography 
pip install pyOpenSSL

相关依赖全部安装完毕,这个时候就可以从容潇洒的执行:

pip install scrapy
4. 测试

输入scrapyscrapy -h,可以查看scrapy命令行,通过scrapy bench测试,不报错就没问题



>>>阅读更多文章请点击以下链接:

python爬虫从入门到放弃之一:认识爬虫
python爬虫从入门到放弃之二:HTML基础
python爬虫从入门到放弃之三:爬虫的基本流程
python爬虫从入门到放弃之四:Requests库基础
python爬虫从入门到放弃之五:Requests库高级用法
python爬虫从入门到放弃之六:BeautifulSoup库
python爬虫从入门到放弃之七:正则表达式
python爬虫从入门到放弃之八:Xpath
python爬虫从入门到放弃之九:Json解析
python爬虫从入门到放弃之十:selenium库
python爬虫从入门到放弃之十一:定时发送邮件
python爬虫从入门到放弃之十二:多协程
python爬虫从入门到放弃之十三:Scrapy概念和流程
python爬虫从入门到放弃之十四:Scrapy入门使用

相关文章

网友评论

    本文标题:python爬虫从入门到放弃之十三:Scrapy概念和流程

    本文链接:https://www.haomeiwen.com/subject/agbdrctx.html