美文网首页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