scrapy如何按顺序自动启动多个spider?

python scrapy框架启动需要从终端窗口启动,操作不方便
所以想创建一个main.py自启动文件

import sys
import os

from scrapy.cmdline import execute

sys.path.append(os.path.dirname(os.path.abspath(__file__))) 
execute(["scrapy", "crawl", "spider1"])

如何按顺序启动多个spider?
例如,spiders有2个,如何在执行了spider1后自动执行spider2

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7473851
  • 这篇博客你也可以参考下:scrapy中多个spider文件和多个items.py以及多个管道文件之间的对应
  • 除此之外, 这篇博客: Scrapy框架知识手册 - 从零到一中的 5、编写spider 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 查看quotes.py文件

    更改start_urls为’http://quotes.toscrape.com/’
    在这里插入图片描述
    Spider 是用户编写用于从单个网站(或者一些网站)爬取数据的类。
    为了创建一个Spider,必须继承spider.Spider类,并且定义以下三个属性:

    • name。在genspider时创建的,用于区别Spider。该名字必须是唯一的,不可以为不同Spider设定相同的名字。
    • allowed_domains。是爬虫能抓取的域名,爬虫只能在这个域名下抓去网页。可以不设置。
    • start_urls。可迭代类型,列表也可以是列表推导式。包含了Spider在启动时进行爬取的url列表。因此,第一个页面必须设置进来,而后续的URL则从初始的URL获取到的数据中提取。
    • parse()。回调函数。是Spider的一个方法,被调用时,该方法中的response,是每个start_urls完成下载后生成的Response对象将会作为唯一的参数传递给该函数。也可以通过其他函数来接收。
      页面解析主要完成下面两个任务:
      • 直接提取页面中的数据(re、XPath、CSS选择器),生成item。
      • 生成需要进一步处理的URL的Request对象,即提取页面中的链接,并产生对链接页面的下载请求。
        页面解析函数通常为一个生成器函数,每一项从页面中提取的数据以及每一个对链接页面的下载请求都由yield语句交给Scrapy引擎。
  • 您还可以看一下 黄锦煌老师的Python爬虫Scrapy框架基础与实战项目案例课程中的 03写一个简单scrapy爬虫小节, 巩固相关知识点
import sys
import os
 
from scrapy.cmdline import execute
 
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

spiders = ["spider1", "spider2"]

for spider in spiders:
    execute(["scrapy", "crawl", spider])

创建了一个名为spiders的列表,其中包含要按顺序执行的spider的名称。然后,使用循环遍历这个列表,在每次循环中执行execute(["scrapy", "crawl", spider])来启动相应的spider