如何像简单的脚本一样以编程方式运行刮a的蜘蛛?

Rav*_*iya 5 python scrapy web-scraping

我创建了一个Scrapy蜘蛛。但我想将其作为脚本运行。我该怎么做。现在,我可以在终端中通过以下命令运行:

$ scrapy crawl book -o book.json
Run Code Online (Sandbox Code Playgroud)

但是我想像一个简单的python脚本一样运行它

在此处输入图片说明

fur*_*ras 6

您可以直接在python脚本中运行Spider,而无需使用项目。

您必须使用scrapy.crawler.CrawlerProcess或,scrapy.crawler.CrawlerRunner
但是我不确定它是否具有项目中的所有功能。

在文档中查看更多信息:常规做法

或者,您可以将命令放在Linux上的bash脚本中或.batWindows上的文件中。

顺便说一句:在Linux上,您可以在第一行(#!/bin/bash)中添加shebang 并设置属性“ executable” (即可执行)
chmod +x your_script-它将以正常程序运行。


工作实例

#!/usr/bin/env python3

import scrapy

class MySpider(scrapy.Spider):

    name = 'myspider'

    allowed_domains = ['http://quotes.toqoute.com']

    #start_urls = []

    #def start_requests(self):
    #    for tag in self.tags:
    #        for page in range(self.pages):
    #            url = self.url_template.format(tag, page)
    #            yield scrapy.Request(url)

    def parse(self, response):
        print('url:', response.url)

# --- it runs without project and saves in `output.csv` ---

from scrapy.crawler import CrawlerProcess

c = CrawlerProcess({
    'USER_AGENT': 'Mozilla/5.0',
    'FEED_FORMAT': 'csv',
    'FEED_URI': 'output.csv',
})
c.crawl(MySpider)
c.start()
Run Code Online (Sandbox Code Playgroud)