自定制命令(让scrapy在pycharm下跑起来)

4 篇文章 0 订阅
3 篇文章 0 订阅

pytcharm运行单个爬虫

# -*- coding: utf-8 -*-
# @Time    : 2019/7/19 下午 5:19
# @Author  : lh
# @Email   : xx@lh.com
# @File    : manage.py
# @Software: PyCharm

import sys
from scrapy.cmdline import execute

"""
单个爬虫自定义命令。可以不用在cmd跑了
"""
if __name__ == '__main__':
	# scrapy crawl douban --nolog 与这个命令是等同的
    execute(['scrapy', 'crawl', 'douban', '--nolog'])

在这里插入图片描述
上面是运行单个爬虫的命令:但是我总不能一个个的写然后再运行,这时还有一种自定制的方法可以使用(一次跑起来所以的爬虫):
1.在spider同级目录下创建任意名字的目录,我这边是custom_command
在这里插入图片描述
2.在custom_command下创建一个crawl_all(这个文件名就是自定义的命令),

# -*- coding: utf-8 -*-
# @Time    : 2019/7/19 下午 5:33
# @Author  : lh
# @Email   : xx@lh.com
# @File    : crawl_all.py
# @Software: PyCharm


from scrapy.commands import ScrapyCommand
from scrapy.utils.project import get_project_settings


class Command(ScrapyCommand):

    requires_project = True

    def syntax(self):
        return '[options]'

    def short_desc(self):
        return 'Runs all of the spiders'

    def run(self, args, opts):
        spider_list = self.crawler_process.spiders.list()
        for name in spider_list:
            self.crawler_process.crawl(name, **opts.__dict__)
        self.crawler_process.start()

3.在settings.py 中添加配置 COMMANDS_MODULE = ‘项目名称.目录名称’
我这边是:

# 自定义命令
COMMANDS_MODULE = 'scrapy_tesy.custom_command'

然后你可以在cmd下运行scrapy crawl_all 命令了:
在这里插入图片描述
也可以使其在pycharm下跑起来。原理是和单个爬虫跑起来是一样的:

import sys
from scrapy.cmdline import execute

"""
单个爬虫自定义命令。可以不用在cmd跑了
"""
if __name__ == '__main__':
    # execute(['scrapy', 'crawl', 'douban', '--nolog'])

    # 自定义命令的运行
    execute(['scrapy', 'crawl_all', '--nolog'])

有关解析:
在这里插入图片描述
如:
在这里插入图片描述
还有:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值