zoukankan      html  css  js  c++  java
  • crawlspider

    1. 从response中提取所有的满足规则的url地址
    2. 自动的构造自己requests请求,发送给引擎
    2.1 创建crawlspider爬虫:

    scrapy genspider -t crawl tencent hr.tencent.com

    2.3 观察跟普通的scrapy.spider的区别

    在crawlspider爬虫中,没有parse函数

    重点在rules中:
    1. rules是一个元组或者是列表,包含的是Rule对象
    2. Rule表示规则,其中包含LinkExtractor,callback和follow等参数
    3. LinkExtractor:连接提取器,可以通过正则或者是xpath来进行url地址的匹配
    4. callback :表示经过连接提取器提取出来的url地址响应的回调函数,可以没有,没有表示响应不会进行回调函数的处理
    5. follow:连接提取器提取的url地址对应的响应是否还会继续被rules中的规则进行提取,True表示会,Flase表示不会

     

    注意:连接提取器LinkExtractor中的allow对应的正则表达式匹配的是href属性的值
     

    4 crawlspider使用的注意点:

    1. 除了用命令scrapy genspider -t crawl <爬虫名> <allowed_domail>创建一个crawlspider的模板,页可以手动创建
    2. crawlspider中不能再有以parse为名的数据提取方法,该方法被crawlspider用来实现基础url提取等功能
    3. Rule对象中LinkExtractor为固定参数,其他callback、follow为可选参数
    4. 不指定callback且follow为True的情况下,满足rules中规则的url还会被继续提取和请求
    5. 如果一个被提取的url满足多个Rule,那么会从rules中选择一个满足匹配条件的Rule执行
     

    5 了解crawlspider其他知识点

    • 链接提取器LinkExtractor的更多常见参数
      • allow: 满足括号中的're'表达式的url会被提取,如果为空,则全部匹配
      • deny: 满足括号中的're'表达式的url不会被提取,优先级高于allow
      • allow_domains: 会被提取的链接的domains(url范围),如:['hr.tencent.com', 'baidu.com']
      • deny_domains: 不会被提取的链接的domains(url范围)
      • restrict_xpaths: 使用xpath规则进行匹配,和allow共同过滤url,即xpath满足的范围内的url地址会被提取,如:restrict_xpaths='//div[@class="pagenav"]'
    • Rule常见参数
      • LinkExtractor: 链接提取器,可以通过正则或者是xpath来进行url地址的匹配
      • callback: 表示经过连接提取器提取出来的url地址响应的回调函数,可以没有,没有表示响应不会进行回调函数的处理
      • follow: 连接提取器提取的url地址对应的响应是否还会继续被rules中的规则进行提取,默认True表示会,Flase表示不会
      • process_links: 当链接提取器LinkExtractor获取到链接列表的时候调用该参数指定的方法,这个自定义方法可以用来过滤url,且这个方法执行后才会执行callback指定的方法
     
    总结
      1. crawlspider的作用:crawlspider可以按照规则自动获取连接
      2. crawlspider爬虫的创建:scrapy genspider -t crawl tencent hr.tencent.com
      3. crawlspider中rules的使用:
        1. rules是一个元组或者是列表,包含的是Rule对象
        2. Rule表示规则,其中包含LinkExtractor,callback和follow等参数
        3. LinkExtractor:连接提取器,可以通过正则或者是xpath来进行url地址的匹配
        4. callback :表示经过连接提取器提取出来的url地址响应的回调函数,可以没有,没有表示响应不会进行回调函数的处理
        5. follow:连接提取器提取的url地址对应的响应是否还会继续被rules中的规则进行提取,True表示会,Flase表示不会
  • 相关阅读:
    经典SQL语句集锦(收藏版)
    硬件访问服务学习笔记_WDS
    Android 工具视频学习笔记_WDS
    Android资源收集
    Android USB gadget configfs学习笔记总结
    IP、端口号、MAC
    Java中的泛型
    git配置config文件
    Java基础知识总结
    Java中的继承抽象类和接口
  • 原文地址:https://www.cnblogs.com/lab-zj/p/12166705.html
Copyright © 2011-2022 走看看