python分布式爬虫中的rules有什么用

发布时间:2020-11-30 14:04:49

来源:亿速云

阅读:100

作者:小新

这篇文章主要介绍python分布式爬虫中的rules有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

爬虫在找寻数据的时候,如果都随意把找到的数据搬运回来,不仅我们的内存装不下,而且会搬回来很多重复的数据,我们也没有办法一个个的进行筛选。这时候我们需要给爬虫制定带回来数据的规则,防止重复数据的产生。这样我们再来谈rules就很好理解了,可以看成是给爬虫制定的规则合集。

在rules中包含一个或多个Rule对象,每个Rule对爬取网站的动作定义了特定操作。如果多个rule匹配了相同的链接,则根据规则在本集合中被定义的顺序,第一个会被使用。class scrapy.spiders.Rule(

link_extractor,

callback = None,

cb_kwargs = None,

follow = None,

process_links = None,

process_request = None

)

link_extractor:是一个Link Extractor对象,用于定义需要提取的链接(Link Extractor对象见下)。

callback: 从link_extractor中每获取到链接时,参数所指定的值作为回调函数,该回调函数接受一个response作为其第一个参数。

注意:当编写爬虫规则时,避免使用parse作为回调函数。由于CrawlSpider使用parse方法来实现其逻辑,如果覆盖了 parse方法,crawl spider将会运行失败。

follow:是一个布尔(boolean)值,指定了根据该规则从response提取的链接是否需要跟进。 如果callback为None,follow 默认设置为True ,否则默认为False。

process_links:指定该spider中哪个的函数将会被调用,从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。

process_request:指定该spider中哪个的函数将会被调用, 该规则提取到每个request时都会调用该函数。 (用来过滤request)

有了rules给爬虫制定规范,我们就可以放心的把搜集数据的任务交给爬虫们了。

以上是“python分布式爬虫中的rules有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

python分布式编程_python分布式爬虫中的rules有什么用相关推荐

  1. Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换

    Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...

  2. 《Python计算机视觉编程》一书中关于增强现实茶壶显示的程序

    大家好,我是第一次写CSDN博客,也是刚开始学习用Python进行计算机视觉编程,有很多不懂和不足的地方,希望大家多包涵.以下纯粹是我个人的一些实际操作经历. 在<Python计算机视觉编程&g ...

  3. python网络爬虫方向的第三方库_Python网络爬虫中常用第三方库总结

    python对于爬虫的编写已经是相当的友好了,不过除了利用requests库或者scrapy框架之外,有一些库还需要我们知道,以便于我们更熟练.便捷的完成目标数据的爬取,接下来我就总结一下我认为在爬虫 ...

  4. python oop编程_Python 3中的面向对象编程(OOP)

    python oop编程 In this article you'll pick up the following basic concepts of OOP in Python: 在本文中,您将了解 ...

  5. python概率编程_Python中的概率编程

    python概率编程 Learn about probabilistic programming in this guest post by Osvaldo Martin, a researcher ...

  6. python socket编程_Python Socket编程实现网络编程

    对于有经验的开发人员来说,掌握的编程语言应该是不少的.在这些编程语言中,网络编程的应用时必不可少的.其中Python也是这样的编程语言.我们今天将会在这里为大家详细介绍一下Python Socket编 ...

  7. python gpu编程_Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速

    Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...

  8. python socket编程_Python学习记录-socket编程

    1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...

  9. python元编程_python元编程详解(3)

    今天转载一片非常精彩的文章供大家欣赏:参考文章链接. python开发者门户一个很好的学习python的网站,大家有时间可以多看看. 下面正式开始今天的内容: 在理解元类之前,你需要先掌握Python ...

最新文章

  1. springboot默认数据源如何设置连接数_spring boot基于DRUID数据源密码加密及数据源监控实现...
  2. 【struts2+hibernate+spring项目实战】ajax+jquery报表数据显示(ssh)
  3. el-input输入金额,保留两位小数
  4. 用IStateManager管理状态
  5. linux nls_lang oracle,linux操作系统环境变量LANG和NLS_LANG的区别
  6. vue与原生app的对接交互的方法(混合开发)
  7. laravel无法运行php,Laravel:php artisan服务无法启动
  8. ortools解决tsp_ortools系列:后话
  9. Linux内核开发者大会 开始报名啦~
  10. 2021年安全生产模拟考试(全国特种作业操作证高处作业-登高架设模拟考试题库一)安考星
  11. 图像处理之图像噪声和各种噪声的matlab实现
  12. 紫光公有云能后发先至吗?
  13. 2021年中国光伏支架产量及主要企业经营分析[图]
  14. 安装卸载提示nsis error的解决方法
  15. 我用了九个小时给高中同学写了一款留言板
  16. Intellij IDEA Messages报Information:java: javacTask: 源发行版 8 需要目标发行版 1.8 Information:java: Errors occu
  17. 1000份电子技术(模电、数电、电子元件、电路视频教程)全套资料!
  18. 富士通论坛2014:人本创新,应用为王
  19. Windows下安装Composer的详细教程
  20. pdf转换成jpg格式的在线转换方法分享

热门文章

  1. 【Spark】Spark Stream读取kafka写入kafka报错 AbstractMethodError
  2. 【Kafka】Kafka集群扩展以及重新分布分区-分区重新分配
  3. 【Flink】FlinkConsumer是如何保证一个partition对应一个thread的
  4. Spring : @Repository 注解
  5. 【Calcite】SQL 形式化语言——关系代数
  6. 【Presto】http-worker-103 com.facebook.presto.execution.SqlTaskManager Switching coordinator affinity
  7. IDEA多Module的Language Level的问题
  8. deepin配置JDK
  9. IDEA查看Maven路径
  10. Java基础-final关键字