「已注销」 2023-07-13 16:20 采纳率: 0%
浏览 25

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

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-13 19:15
    关注
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: 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爬虫小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 修改了问题 7月13日
  • 创建了问题 7月13日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境