scrapy如何顺序执行多个爬虫

scrapy如何单线程顺序执行多个爬虫,刚开始我天真的以为将多个excute顺序罗列就能依次执行每个爬虫了,代码如下所示:

谁料,在执行完第一个爬虫之后,整个程序就停止运行了。到底是什么原因呢?笔者在 Stack Overflow 上找到了类似的问题( https://stackoverflow.com/questions/24875280/scrapy-cmdline-execute-stops-script )。得知问题的原因在于 方法中的最后一句代码是 ,所以当程序执行完一个execute语句后便停止了。

那么,这个问题该如何解决呢?

思路1:测试 能不能执行多个命令,即在 方法中设置多个参数,或用列表的形式将多个命令组合在一起进行执行。--经测试,不行!

思路2:既然 可以执行一条 命令,那么在 中有没有类似 的命令,它可以执行一个由多条命令组合在一起的列表命令集呢。--经测试,不行!

思路3:寻找可以替换 的命令,只要能执行命令即可。

方法一: (这也是我所遇到的最简单方法)

下面的两种方法,笔者并没有尝试成功,暂时写在这里,有待进一步研究。

方法二:

方法三:

拓展:如何实现多个爬虫循环顺序爬取

首先设置一个循环,接着为每一个爬虫设置一个定时器,让每一个爬虫爬虫一段时间,再运行下一个爬虫即可。具体代码如下,此处设置每一个爬虫运行3600秒

作者:高正杰

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自企鹅号 - Python热爱着媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ImportSource

厕读:每日一题,面试无忧

9. volatile关键字是否能保证线程安全?() 答案:不能 解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到...

336100
来自专栏Micro_awake web

es6(六):module模块(export,import)

es6之前,社区模块加载方案,主要是CommonJS(用于服务器)和AMD(用于浏览器) 而es6实现的模块解决方案完全可以替代CommonJS和AMD ES6...

21270
来自专栏锦小年的博客

python学习笔记5.1-理解模块和包

python 是面向对象的编程语言,那么其包含的所有元素都是对象,包括模块和包。包和模块其实都是功能的集合体,只是包的功能更多,包含了很多模块。也就是说包和模块...

20070
来自专栏上善若水

S008SELinux的约束操作

约束(constraints),是SELinux很有用的特新,它的使用十分普遍。很多时候,用户觉得约束是一种添加到黑名单上,并使其受限的方法。当然前提是默认允许...

13120
来自专栏前端说吧

git-常用命令一览表

38790
来自专栏Golang语言社区

Golang语言--select

Golang语言--select golang的select与channel配合使用。它用于等待一个或者多个channel的输出。 应用场景:主goroutin...

35870
来自专栏极客生活

数据分析Excel之去重

默认是所有列对比,也就是将所有列看成一个元组,全都相同才算重复。 比如上图中,由于「全选」,只有一个重复值就是20行和21行,点击「删除重复项」即可。

8510
来自专栏Java 技术分享

Hibernate Session总结

14460
来自专栏Java 技术分享

Hibernate Session总结

34980
来自专栏JavaEdge

JVM性能调优实战(一) - 基于JDK命令行的监控1 JVM的参数类型2 查看JVM运行时参数3 jstat查看JVM统计信息GC

7010

扫码关注云+社区

领取腾讯云代金券