夜与初醒 2023-07-13 16:20 采纳率: 0%
浏览 22

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日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据