美文网首页
2019-06-21爬虫框架

2019-06-21爬虫框架

作者: hcc_9bf4 | 来源:发表于2019-06-21 20:54 被阅读0次
    1. 爬虫框架:
    • scrapy
    • pyspider
    • crawley

    scrapy框架介绍

    • https://doc.scrapy.org/en/latest/
    • http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
      scrapy概述
      Scrapy五大基本构成:
      Scrapy框架主要由五大组件组成,它们分别是调度器 (Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我们分别介绍各个组件的作用。
      Scrapy Engine:神经中枢,大脑,核心
      Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。
      Scheduter调度器:引擎发来的request请求,调度器需要处理,然后交换引擎,
      调度器,说白了把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是 什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。
      Downloader下载器:把引擎发来的requests发出请求,得到response
      下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主 要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。
      Spider爬虫:负责把下载器得到的网页/结果进行分解,分解成数据+链接
      爬虫,是用户最关心的部份。用户定制自己的爬虫,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。
      Item Pipeline管理:详细处理item
      实体管道,用于处理爬虫提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。
      DownloaderMiddleware下载中心件:自定义下载的功能扩展组件
      SpiderMiddleware爬虫中间件:对spider进行功能扩展
    image.png

    Scrapy请求发出去的整个流程

    Scrapy运行时,请求发出去的整个流程大概如下:

    1.首先爬虫将需要发送请求的url(requests)经引擎交给调度器;

    2.排序处理后,经ScrapyEngine,DownloaderMiddlewares(有User_Agent, Proxy代理)交给Downloader;

    3.Downloader向互联网发送请求,并接收下载响应.将响应经ScrapyEngine,可选交给Spiders;

    4.Spiders处理response,提取数据并将数据经ScrapyEngine交给ItemPipeline保存;

    5.提取url重新经ScrapyEngine交给Scheduler进行下一个循环。直到无Url请求程序停止结束。

    爬虫项目大概流程:
    新建项目:scrapy startproject XXX
    明确需要目标/产出:编写item.py
    制作爬虫:地址 spider/xxxspider.py
    存储内容:pipelines.py

    ItemPipeline
    -对应的是pipelines文件
    爬出提取出数据存入item后。item中 保存的数据需要进一步处理,比如清洗,去重,存储等
    pipeline需要处理process_item函数
    process_item:
    spider提取出来的item作为参数传入,同时传入的参数还有spider
    此方法必须实现
    必须返回一个item对象,被丢弃的item不会被之后的pipeline处理

    • _init_:构造函数,进行一些必要的参数初始化
    • open_spider(spider)
      spider对象被开启时被调用
    • close_spider(spider)
      spider对象被关闭时被调用
    • Spider
      对应的是文件夹spider下的文件
      _init_:初始化爬虫名称,start_urls列表
      start_requests:生成Reaquests对象交给Scrapy下载并返回response
      parse:根据返回的response解析出对应的item。item自动进入pipeline,如果需要,解析出url,url自动交给requests模块,一直循环下去
      start_request:此方法仅能被调用一次,读取start_urls内容并启动循环过程
      neme:设置爬虫名
      start_urls:设置开始第一批爬取的url
      allow_domains:允许爬取的域名列表
      start_request(self):只被调用一次
      parse
      log:日志记录

    相关文章

      网友评论

          本文标题:2019-06-21爬虫框架

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