Unknown command: crawl(爬虫框架Scrapy遇到的常见错误)


前言序锦


今天在用scrapy框架运行多爬虫的时候,遇到了一个比较棘手的问题,刚开始进行了各种尝试,却还是不行,最后终于还是找到了原因!


  • 正文

    • 当我们在cmd中或者PyCharm中使用Terminal输入scrapy crawl lieping(lieping是我项目里的爬虫的名字,name = “lieping”,爬取猎聘网的职位信息),总会报如下的错误:
      E:\Study\Python\Codes\Spiders\0301\job_spider>scrapy crawl lieping
      Scrapy 1.5.0 - no active project

      Unknown command: crawl

      Use “scrapy” to see available commands

    • 原因

      • 第一种
        • 如果是用的cmd的话,那是应为没有cd到项目的根目录,因为crawl会去搜索cmd目录下的scrapy.cfg文件,官方文档中也进行了说明:http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/commands.html
      • 第二种
        • 当我们使用的PyCharm来进行运行的时候,我们所处的位置本来就是项目的根目录,而这个时候还是报错误的话,那就不是没有进入根目录的问题了,而是其他原因了……
        • 当我们去反复查看错误语句后,我们发现那一句:“no active project”,这就说明是我们的工程有问题,于是去官方文档查看了一下我们的目录结构,并对照看来一下我的项目的结构,发现,在使用命令行startproject的时候,会自动生成scrapy.cfg,问题就出现在这里,那是因为这个项目文件中只有代码,没有配置文件,或者配置文件被移去其他位置了,导致报错。
        • 解决办法:
          • 找一个配置文件,修改为如下格式,

            # Automatically created by: scrapy startproject
            #
            # For more information about the [deploy] section see:
            # https://scrapyd.readthedocs.io/en/latest/deploy.html
            [settings]
            default = **job_spider**.settings
            [deploy]
            #url = http://localhost:6800/
            project = **job_spider**

            其中的job_spider是你的项目的名字
            放在项目代码的外面,注意是项目代码的外面。不确定的可以看下scrapy文档->入门教程->创建项目,其中有目录结构。
            放好配置文件后,再进入Terminal执行scrapy crawl job_spider,完美抓取。

好了,今天的分享到此为止了哟,希望can help you!^_^

你可能感兴趣的:(Python)