• 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实例,后面也要用逗号 “ , ” 分隔。

  • 相关阅读:
    html表单提交的几种方法
    ORACLE-SQLLOAD导入外部数据详解
    js 技巧1
    js 细节
    问题链接
    abstract 抽象类
    修饰符 public、 private 和 protected和区别
    HTML5新特性之Mutation Observer
    img 标签上的src 链接图片不存在时 怎么处理
    npm 用 淘宝代理
  • 原文地址:https://www.cnblogs.com/doitjust/p/9251505.html
Copyright © 2020-2023  润新知