1. crawlspider是什么

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

对应的crawlspider就可以实现上述需求,能够匹配满足条件的url地址,组装成Reuqest对象后自动发送给引擎,同时能够指定callback函数。即:crawlspider爬虫可以按照规则自动获取连接

2.创建crawlspider爬虫并观察爬虫内的默认内容

2.1 创建crawlspider爬虫:

scrapy genspider -t crawl tencent hr.tencent.com

2.2观察跟普通的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表示不会

3. crawlspider腾讯招聘爬虫

思路分析:

  1. 定义一个规则,来进行列表页翻页,follow需要设置为True
  2. 定义一个规则,实现从列表页进入详情页,并且指定回调函数
  3. 在详情页提取数据

注意:连接提取器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指定的方法

scrapy的crawlspider爬虫相关推荐

  1. Scrapy框架 -- crawlSpider爬虫

    一.新建一个分布式爬虫项目,并进入该项目创建爬虫文件 scrapy startproject fenbushi cd fenbushi scrapy genspider-t crawl fenbush ...

  2. Scrapy框架中的crawlspider爬虫

    1 crawlspider是什么 在spider中要寻找下一页的url地址或者内容的url地址,想想是否有简单的方法省略寻找url的过程? 思路: 从response中提取所有的满足规则的url地址 ...

  3. Scrapy 规则化爬虫(1)——CrawlSpider及link_extractor

    Scrapy 规则化爬虫(1)--CrawlSpider及link_extractor 目录 Scrapy 规则化爬虫(1)--CrawlSpider及link_extractor 前言 一.Craw ...

  4. Scrapy中的crawlspider爬虫

    crawlspider 介绍 创建模板 具体参数和解释 重点在rules中: 栗子: 介绍 Scrapy框架中分两类爬虫 Spider类和CrawlSpider类. crawlspider是Spide ...

  5. Scrapy中CrawlSpider

    Scrapy中CrawlSpider 引入 之前的代码中,我们有很大一部分时间在寻找下一页的URL地址或者内容的URL地址上面,这个过程能够更简单一些吗? 思路 1.从response中提取所有的a标 ...

  6. scrapy之crawlspider

    1 crawlspider是什么 回顾之前的代码中,我们有很大一部分时间在寻找下一页的url地址或者是内容的url地址上面,这个过程能更简单一些么? 思路: 从response中提取所有的满足规则的u ...

  7. Scrapy框架--CrawlSpider (详解+例子)

    目录 CrawlSpider 简介 基本运行 特性和概念 基本使用 创建CrawlSpider 运行 使用CrawlSpider中核心的2个类对象 Rule对象 LinkExtractors 作用 使 ...

  8. 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案

    关于使用scrapy框架编写爬虫以及Ajax动态加载问题.反爬问题解决方案 参考文章: (1)关于使用scrapy框架编写爬虫以及Ajax动态加载问题.反爬问题解决方案 (2)https://www. ...

  9. python 定时执行 爬虫 模块_浅析python实现scrapy定时执行爬虫

    项目需要程序能够放在超算中心定时运行,于是针对scrapy写了一个定时爬虫的程序main.py ,直接放在scrapy的存储代码的目录中就能设定时间定时多次执行. 最简单的方法:直接使用Timer类 ...

最新文章

  1. 关于captive portal
  2. 常见算子使用_spark快速入门(二)spark粗略流程简述及常见名词解释
  3. Java 洛谷 P1089 津津的储蓄计划讲解
  4. maven+jenkins自动化构件
  5. WINCC访问OPC服务器显示叹号,本机浏览opcserver.wincc ,无法打开-工业支持中心-西门子中国...
  6. 60K!刚面完Python!这个被Oracle裁掉的程序员求职刷爆全网!
  7. Fibonacci 取余,直接做超时
  8. spring事务失效场景三:内部方法调用
  9. 混淆的艺术-(苍井空变凤姐)Proguard源码分析(一)前言和计划
  10. (转)DirectoryEntry的使用
  11. 表格里加横线一分为二_我告诉你excel表格分割线一分为二
  12. 微信小程序实现word,excell等文件下载
  13. 如何批量打印dwf文件
  14. python爬虫requests源码链家_python爬虫:爬取链家深圳全部二手房的详细信息
  15. ipad iphone开发_如何在iPhone或iPad上删除电子邮件
  16. ubuntu20.04下安装qq和微信(最新)
  17. 推动前端团队基础设施建设流程方案计划书
  18. Redis的数据结构及底层原理
  19. C#切换鼠标左右键习惯
  20. 国内外常用公共NTP网络时间同步服务器地址

热门文章

  1. SCDL--稀疏编码(sparse code)与字典学习(dictionary learning)
  2. WPC Qi 无线充电标准入门介绍与测试
  3. 2021年PMP考试考场公布
  4. 192.168.8.1手机登陆_192.168.8.1手机登录入口官网路由器设置
  5. C++ Primer 13-15
  6. Java打印int类型二进制
  7. 我是如何转岗成为数据分析师?
  8. charles linux版本,Charles 下载
  9. 华为麦芒5云空间升级_华为麦芒5原版系统rom刷机包_华为麦芒5最新升级包更新下载...
  10. js获取美国太平洋标准时间PST