scrapy框架【自定製命令】

scrapy框架自定製命令

 

寫好本身的爬蟲項目以後,能夠本身定製爬蟲運行的命令。html

1、單爬蟲python

在項目的根目錄下新建一個py文件,如命名爲start.py,寫入以下代碼:框架

from scrapy.cmdline import execute

if __name__ == "__main__":
    execute(["scrapy", "crawl", "chouti", "--nolog"])

運行start.py便可。scrapy

2、多爬蟲運行ide

一、在spiders的同級目錄建立文件夾,如commands;post

二、在這個新建的文件夾下建立一個py文件,如命名爲crawlall.py,編寫代碼:ui

複製代碼
from scrapy.commands import ScrapyCommand


class Command(ScrapyCommand):
    requires_project = True

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

    def short_desc(self):
        return "Run 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()
複製代碼

三、在settings.py中添加配置:COMMANDS_MODULE = "項目名.目錄名"url

如:COMMANDS_MODULE = "myspider.spiders.commands"spa

四、在終端輸入:scrapy crawlall --nolog 便可運行  (crawlall是步驟2中你新建的py文件名)code

目錄結構

複製代碼
 └─myspider
        │  items.py
        │  middlewares.py
        │  pipelines.py
        │  settings.py
        │  __init__.py
        │
        ├─spiders
        │  │  zhihu.py
        │  │  __init__.py
        │  │
        │  ├─commands
        │  │  │  crawlall.py
        │  │  │
        │  │  └─__pycache__
        │  │          crawlall.cpython-36.pyc
        │  │
        │  └─__pycache__
        │          zhihu.cpython-36.pyc
        │          __init__.cpython-36.pyc
        │
        └─__pycache__
                items.cpython-36.pyc
                pipelines.cpython-36.pyc
                settings.cpython-36.pyc
                __init__.cpython-36.pyc
相關文章
相關標籤/搜索