zoukankan      html  css  js  c++  java
  • 0scrapy框架介绍

    ####

    目录

    面试的时候问你基础概念和工作流程,看看你对这个框架是否熟悉 

    #####

    其实使用requests+selenium就可以解决90%的爬虫需求了,但是为什么还需要学习scrapy?

    scrapy是为了让爬虫更快,更强,解决抓取效率慢,解决爬虫的效率和速度的问题,

    #####

     框架和模块的区别是什么?

    requests是模块,

    框架能解决特定需求的所有的功能,包含了很多的模块,

    框架是大而全的东西,而模块只是实现了一个特定的功能, 

    twisted异步框架,扭曲的意思,

    ####

    用做菜煮饭的例子非常的形象

    ####

    ####

     

     ####

    ####

    scheduler,就是一个调度器,存放是requests对象,这个对象有一些属性,比如url地址,header,代理,都是这里面,

    downloader,下载器,这个是为了从url池子里面取url,发起请求获取数据

    spiders,爬虫,这个就是从下载的内容提取数据给数据队列,还可以提取url并且还需要组装成request对象再传递给调度器里面去,做了两个事情,

    item pipeline,这个是数据队列,为了保存数据,管道,就是把前一次的输出作为后一次的输入,

    scrapy engine,引擎,爬虫获取到的url就是组装成request交给引擎,然后引擎给了调度器, 所以上面的四个模块是不联系,都是通过引擎联系,这就是解耦,容错率高,引擎负责所有的调度,

    downloader middlewares,下载中间件,也就是我们可以写一个中间件,可以对下载做额外的处理的,

    spider middlewares,爬虫中间件,这个地方也可以处理保存数据,但是因为我们有专门的item pipeline了,所以不需要在这里处理,两个中间件很像加工厂,可以处理数据,丢弃数据,

    为什么要分这么多的模块,因为分开了之后更简短了,

    和平哥的思路是一样的,

     ####

    所以框架可以加快爬虫速度,而且还能少些很多代码,把精力放到核心业务处理的地方,

    ####


    写爬虫很简单,写出高可用的爬虫就不容易了,
    scrapy框架的问题:

    1,scrapy_redis通过redis实现调度器的队列和指纹集合,完成分布式和去重。

    2,scrapy_redis_bloomfilter,基于Redis的Bloomfilter去重,并将其扩展到Scrapy框架,实现持久化去重,上亿或十亿级别的去重功能。

    3,scrapy-splash ,整合了javascript,可以在scrapy当中执行js,获取数据,解析。

    4,不能满足实时监控和告警的需求。

    5,可视化的问题,相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量。

    可视化的问题,不是scrapy可视化的问题,而是爬虫可视化的问题,这个每一个爬虫都面临这个问题,

    当你部署很多爬虫以后你就需要一个可视化的爬虫监控系统。来方便查看每个爬虫的入库数据和工作状态等

    6,项目管理的问题,

    7,框架的高级应用,待爬取的目标网页站点,千奇百怪,在实际项目中,为了快速方便的实现功能,需要灵活的使用框架,比如结合requests使用,修改源码,重新定义扩展,输出日志到可视化工具系统,自定义发送钉钉预警等。

    ####

    可见scrapy不能解决所有的问题,

    有些问题还需要你自定义,就需要玩转线程和协程这些东西,!!!! 

    #####

  • 相关阅读:
    20155313 杨瀚 《网络对抗技术》实验九 Web安全基础
    20155313 杨瀚 《网络对抗技术》实验八 Web基础
    20155313 杨瀚 《网络对抗技术》实验七 网络欺诈防范
    20155313 杨瀚 《网络对抗技术》实验六 信息搜集与漏洞扫描
    20155313 杨瀚 《网络对抗技术》实验五 MSF基础应用
    20155313 杨瀚 《网络对抗技术》实验四 恶意代码分析
    20155313 杨瀚 《网络对抗技术》实验三 免杀原理与实践
    20155313 杨瀚 《网络对抗技术》实验二 后门原理与实践
    20155313 杨瀚 《网络对抗技术》实验一 PC平台逆向破解(5)M
    20155313 2017-2018-1 《信息安全系统设计基础》课程总结
  • 原文地址:https://www.cnblogs.com/andy0816/p/15055119.html
Copyright © 2011-2022 走看看