zoukankan      html  css  js  c++  java
  • Spider、xmlSpider、FeedSpider、CrawlSpider、RedisSpider分别作用

    • Spider
      •   classscrapy.spider.Spider

        Spider是最简单的spider,也是scrapy的模板类的basic模板所对应的spider,直接想通过scrapy genspider模板生成实例代码,就是这个模板生成的哦,查询scrapy的模板都有什么的话,scrapy genspider -l即可。每个其他的spider必须继承自该类(包括Scrapy自带的其他spider以及您自己编写的spider)。 Spider并没有提供什么特殊的功能。 其仅仅请求给定的 start_urls/start_requests ,并根据返回的结果(resulting responses)调用spider的 parse 方法。对于一些比较规则的网站,我们似乎可以用Spider类去应付。比如:一个有列表(list),有详情(detail)页的页面,你可以直接先parse列表页,再递归去获取详情页的内容,这种方法,就是简单粗暴。

    • XmlSpider
      •   classscrapy.contrib.spiders.XMLFeedSpider

        xmlSpider类,是建立爬虫的另外一个类。XMLSpider被设计用于通过迭代各个节点来分析XML源(XML feed)。 迭代器可以从 iternodes , xml , html 选择。 鉴于 xml 以及 html 迭代器需要先读取所有DOM再分析而引起的性能问题, 一般还是推荐使用 iternodes 。 不过使用 html 作为迭代器能有效应对错误的XML。这个应用不多,官方文档上也有相应的介绍,感兴趣的可以看看文档即可。

    • CSVSpider
      • classscrapy.contrib.spiders.CSVFeedSpider

        该spider除了其按行遍历而不是节点之外其他和XMLFeedSpider十分类似。主要处理的数据的格式不一样,这个主要处理CSV格式的数据文件。这儿就不多介绍了,感兴趣的也去查查手册吧。

    • SitemapSpider
      • class scrapy.contrib.spiders.SitemapSpider

        SitemapSpider使您爬取网站时可以通过 "站点地图" 来发现爬取的URL。其支持嵌套的sitemap,并能从 robots.txt 中获取sitemap的url。站点地图,就是一般的站长为了方便搜索引擎的抓取,通过特定的方式或规划生成一定的xml站点地图文件,供搜索引擎抓取,这个spider就是利用此文件实现相应内容的抓取和分析。

    • CrawlSpider
      • class scrapy.contrib.spiders.CrawlSpider

        这个spider爬取一般网站常用的网站,其特色是定义了一些规则(rule)来提供跟进link的方便的机制,其对很多情况都使用。比如:全站抓取,这个是最常用的。想抓取什么内容,可以直接定义规则,该spider会自动从start_urls里去抽取相应规则的url,并下载。供Rule里的回调函数来抽取内容处理。在rules中包含一个或多个Rule对象,每个Rule对爬取网站的动作定义了某种特定操作,比如提取当前相应内容里的特定链接,是否对提取的链接跟进爬取,对提交的请求设置回调函数等。这个功能很强大,也很方便。

    • RedisSpider
      • class RedisSpider(RedisMixin, Spider)

        该Spider继承自Spider.最主要的应该就是支持分布式爬虫,请求的持久化,去重的持久化。start_urls没有了,多了redis_key ,往redis_key存入start_url地址才能启动,settings 中多了几行配置。

    • RedisCrawlerSpider
      • class RedisCrawlSpider(RedisMixin, CrawlSpider):

        此spider是比较强大的。该Spider继承自CrawlSpider,具有CrawlSpider的一切功能。不同的是这个Spicer支持分布式爬虫,请求的持久化,去重的持久化。start_urls没有了,多了redis_key ,往redis_key存入start_url地址才能启动,settings 中多了几行配置。因为采用的是crawlSpider,所以需要遵守Rule规则,以及callback不能写parse()方法。

      常用的基本是这些Spider。更强大的功能,还需要更进一步的挖掘!

     

  • 相关阅读:
    SR-IOV(Single Root I/O Virtualization)
    DHCP&DHCPv6
    Linux 上的基础网络设备详解
    当Linux用尽内存-oom
    真爱了--网络工程师技能图谱
    程序员必备技能:如何画好架构图?
    Linux内存使用情况以及内存泄露情况
    Neutron 消息回调系统
    linux bridge
    OpenStack-Neutron-code
  • 原文地址:https://www.cnblogs.com/jessicor/p/12060960.html
Copyright © 2011-2022 走看看