python分布式编程_python分布式爬虫中的rules有什么用
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有什么用相关推荐
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...
- 《Python计算机视觉编程》一书中关于增强现实茶壶显示的程序
大家好,我是第一次写CSDN博客,也是刚开始学习用Python进行计算机视觉编程,有很多不懂和不足的地方,希望大家多包涵.以下纯粹是我个人的一些实际操作经历. 在<Python计算机视觉编程&g ...
- python网络爬虫方向的第三方库_Python网络爬虫中常用第三方库总结
python对于爬虫的编写已经是相当的友好了,不过除了利用requests库或者scrapy框架之外,有一些库还需要我们知道,以便于我们更熟练.便捷的完成目标数据的爬取,接下来我就总结一下我认为在爬虫 ...
- python oop编程_Python 3中的面向对象编程(OOP)
python oop编程 In this article you'll pick up the following basic concepts of OOP in Python: 在本文中,您将了解 ...
- python概率编程_Python中的概率编程
python概率编程 Learn about probabilistic programming in this guest post by Osvaldo Martin, a researcher ...
- python socket编程_Python Socket编程实现网络编程
对于有经验的开发人员来说,掌握的编程语言应该是不少的.在这些编程语言中,网络编程的应用时必不可少的.其中Python也是这样的编程语言.我们今天将会在这里为大家详细介绍一下Python Socket编 ...
- python gpu编程_Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速
Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...
- python socket编程_Python学习记录-socket编程
1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...
- python元编程_python元编程详解(3)
今天转载一片非常精彩的文章供大家欣赏:参考文章链接. python开发者门户一个很好的学习python的网站,大家有时间可以多看看. 下面正式开始今天的内容: 在理解元类之前,你需要先掌握Python ...
最新文章
- springboot默认数据源如何设置连接数_spring boot基于DRUID数据源密码加密及数据源监控实现...
- 【struts2+hibernate+spring项目实战】ajax+jquery报表数据显示(ssh)
- el-input输入金额,保留两位小数
- 用IStateManager管理状态
- linux nls_lang oracle,linux操作系统环境变量LANG和NLS_LANG的区别
- vue与原生app的对接交互的方法(混合开发)
- laravel无法运行php,Laravel:php artisan服务无法启动
- ortools解决tsp_ortools系列:后话
- Linux内核开发者大会 开始报名啦~
- 2021年安全生产模拟考试(全国特种作业操作证高处作业-登高架设模拟考试题库一)安考星
- 图像处理之图像噪声和各种噪声的matlab实现
- 紫光公有云能后发先至吗?
- 2021年中国光伏支架产量及主要企业经营分析[图]
- 安装卸载提示nsis error的解决方法
- 我用了九个小时给高中同学写了一款留言板
- Intellij IDEA Messages报Information:java: javacTask: 源发行版 8 需要目标发行版 1.8 Information:java: Errors occu
- 1000份电子技术(模电、数电、电子元件、电路视频教程)全套资料!
- 富士通论坛2014:人本创新,应用为王
- Windows下安装Composer的详细教程
- pdf转换成jpg格式的在线转换方法分享
热门文章
- 【Spark】Spark Stream读取kafka写入kafka报错 AbstractMethodError
- 【Kafka】Kafka集群扩展以及重新分布分区-分区重新分配
- 【Flink】FlinkConsumer是如何保证一个partition对应一个thread的
- Spring : @Repository 注解
- 【Calcite】SQL 形式化语言——关系代数
- 【Presto】http-worker-103	com.facebook.presto.execution.SqlTaskManager	Switching coordinator affinity
- IDEA多Module的Language Level的问题
- deepin配置JDK
- IDEA查看Maven路径
- Java基础-final关键字