zoukankan      html  css  js  c++  java
  • Scrapy-Spider

     CrawlSpider

      CrawlSpider类  

      CrawlSpider类常用于爬取一般的网站,其定义了一些规则(rule)来提供跟进链接的功能,使用非常方便。处理从Spider继承过来的属性外,还提供了一个新的属性ruels,该属性是一个过多个Rule对象的元组(list),每个Rule都对爬取网站的动作定义了特定的规则。如果多个Rule匹配了相同的链接,则根据它们在rules属性中被定义的顺序,第一个会被使用。CrawlSpider也提供了一个可复写的方法parse_start_url(response),当start_urls的请求返回时,该方法被调用。该方法分析最初的响应,返回一个Item对象或者一个Reqeust对象或者一个可迭代的包含二者的对象。

      爬取规则Rule 

    class scrapy.contrib.spiders.Rule(link_extractor,callback=None,cb_kwargs=None, follow=None, process_links=None, process_request=None)

      构造参数说明:
        □ link_extractor : 是一个LinkExtractor对象,其定义了如何从爬取到的页面提取链接。
        □ callback : 是一个callable 或 string,该spider中与string同名的函数将被调用。每次从link_extactor中获取到链接时将会调用该函数。该函数接收一个response最为第一个参数,并返回Item或Request对象。当编写爬虫规则时,应避免使用parse最为回调函数。由于CrawlSpider使用parse方法来实现其逻辑,如果您覆盖了parse方法,crawlspider将会运行失败。
        □ cb_kwargs : 包含传递给回调函数的参数(keyword argument)的字典。
        □ follow :是一个布尔值,指定了改规则从response提取的链接是否需要跟进。如果callback为None,follow默认设置为True,否则为False。
        □ process_links : 是一个callable或string(该spider中同名的函数将会被调用)。从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。
        □ process_request:是一个callable或string(该spider中同名的函数将会被调用)。该规则提取到每个reqeust是都会调用该函数。该函数必须返回一个request会None。(用来过滤request)

      LinkExtractor对象

        LinkExtractor对象的构造,用来产生过滤规则。LinkExtractor常用的参数有:
        □ allow : 提取满足正则表达式的链接。
        □ deny : 排除正则表达式匹配的链接,优先级高于allow。
        □ allow_domains : 允许的域名,可以是str或list。
        □ deny_domains : 排除的域名,可以是str或list。
        □ restrict_xpaths : 提取满足XPath选择条件的链接,可以是str或list。
        □ restrict_css : 提取满足CSS选择条件的链接,可以是str或list。
        □ tags : 提取指定标记下的链接,默认从a和area中提取,可以是str或list。
        □ unique : 链接是否去重,类型为Boolean。
        □ process_value : 值处理函数,优先级大于allow。

      rules属性中即使只有一个Rule实例,后面也要用逗号 “ , ” 分隔。

  • 相关阅读:
    201521044091《Java程序设计》第7周学习总结
    201521044091《java程序设计》第四次总结
    201521044091 《java程序设计》第八周学习总结
    201521044091 《Java程序设计》第5周学习总结
    201521044091 《Java程序设计》第2周学习总结
    201521044091 《Java程序设计》第3周学习总结
    MySQL设置字符集CHARACTER SET
    Create My MySQL configuration by Percona
    How to use jQuery to manipulate Cookies
    How to use OpenXml to import xml data to Sql server
  • 原文地址:https://www.cnblogs.com/doitjust/p/9251505.html
Copyright © 2011-2022 走看看