Как запустить код после завершения сканирования Scrapy - PullRequest
0 голосов
/ 20 сентября 2019

Как запустить код после завершения сканирования Scrapy

У меня есть паук:

from scrapy import Spider
from scrapy.spiders import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractor


class KpallSpider(CrawlSpider):
    name = 'test'
    allowed_domains = ['kupujemprodajem.com']
    start_urls = ['https://www.kupujemprodajem.com/Usluge-Auto-moto/Automehanicar/1410-1426-1-grupa.htm']


    rules = [Rule(LinkExtractor(allow=['grupa.htm']),callback='parse_item',follow=True)]

    def parse_item(self, response):
        url = str(response.url)
        yield {'url':url}

Я хочу написать в JSON

И после завершения сканирования Scrapyя хочу:

print('Something')

1 Ответ

0 голосов
/ 21 сентября 2019

Вы можете сделать это так, на вашей любимой оболочке:

scrapy crawl test -o items.json && echo "Something"

Или можете сделать то же самое в вашем питоне, как это:

import scrapy
from scrapy.crawler import CrawlerProcess

class MySpider(scrapy.Spider):
    # Your spider definition
    ...

process = CrawlerProcess(settings={
    'FEED_FORMAT': 'json',
    'FEED_URI': 'items.json'
})

process.crawl(MySpider)
process.start() # the script will block here until the crawling is finished

print("Something")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...