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]

  • 相关阅读:
    linux 学习随笔-shell基础知识
    linux 学习随笔-压缩和解压缩
    解析xml的4种方法详解
    集合工具类
    Map概述
    List集合概述
    Java集合框架
    Spring JdbcTemplate详解
    关于c3p0数据库连接池的简单使用
    Java通过JDBC封装通用DAO层
  • 原文地址:https://www.cnblogs.com/syketw23/p/7667801.html
Copyright © 2011-2022 走看看