zoukankan      html  css  js  c++  java
  • 爬虫

    scrapy的实现原理

    1、爬虫引擎ENGINE获得初始请求开始抓取。

    2、爬虫引擎ENGINE开始请求调度程序SCHEDULER,并准备对下一次的请求进行抓取。

    3、爬虫调度器返回下一个请求给爬虫引擎。

    4、引擎请求发送到下载器DOWNLOADER,通过下载中间件下载网络数据。

    5、一旦下载器完成页面下载,将下载结果返回给爬虫引擎ENGINE。

    6、爬虫引擎ENGINE将下载器DOWNLOADER的响应通过中间件MIDDLEWARES返回给爬虫SPIDERS进行处理。

    7、爬虫SPIDERS处理响应,并通过中间件MIDDLEWARES返回处理后的items,以及新的请求给引擎。

    8、引擎发送处理后的items到项目管道,然后把处理结果返回给调度器SCHEDULER,调度器计划处理下一个请求抓取。

    9、重复该过程(继续步骤1),直到爬取完所有的url请求。


    scrapy有什么优点和缺点

    采取可读性更强的xpath代替正则 
    强大的统计和log系统 
    同时在不同的url上爬行 
    支持shell方式,方便独立调试 
    写middleware,方便写一些统一的过滤器 
    通过管道的方式存入数据库

    缺点:

    scrapy默认的debug模式信息量太大,由于异步框架出错后是不会停掉其他任务的,也就是出错了还会接着跑。。。

    Scrapy原生不支持js渲染,需要单独下载[scrapy-splash]

  • 相关阅读:
    210
    209
    208
    207
    定时任务crontab
    Python的zip与*zip函数的应用
    Python的reduce函数与map函数
    解析:cpu与io密集在何场景适合使用多进程,多线程,协程
    Python上下文(转载)
    C10K与C10M的问题
  • 原文地址:https://www.cnblogs.com/syketw23/p/7667801.html
Copyright © 2011-2022 走看看