Запуск программы Scrapy из другого скрипта Python - PullRequest
0 голосов
/ 21 января 2019

На этот вопрос уже давали ответы, но давным-давно ответили.

В моем "проекте" у меня есть 4 паука, и каждый из них имеет дело с различными видами продуктов, с которыми я сталкиваюсь (чистка амазонки). У каждого продукта есть категория, например, если я хочу очистить «ноутбуки», я использую один скребок, но если целью является очистка одежды, у меня есть другой.

Итак, есть ли способ запустить скрипт на Python, который, в зависимости от продукта, который я должен очистить (продукты читаются из txt-файла), называется другим пауком?

Код будет выглядеть так

#Imports

def scrapyProject():

    #Get the products I want to scrape
    if productIsClothes:

        runClothesSpider

    else productIsGeneric:

        runGenericSpider

Я знаю, что предыдущий код груб, Это своего рода набросок для окончательного кода.

Это также помогло бы узнать, какой импорт мне нужен для работы программы

1 Ответ

0 голосов
/ 22 января 2019

Вы можете просто установить класс паука с помощью оператора if:

import sys

import scrapy
from scrapy.crawler import CrawlerProcess

from project.spiders import Spider1, Spider2

def main():
    process = CrawlerProcess({})

    if sys.argv[1] == '1':
        spider_cls = Spider1
    elif sys.argv[1] == '2':
        spider_cls = Spider2
    else:
        print('1st argument must be either 1 or 2')
        return
    process.crawl(spider_cls)
    process.start() # the script will block here until the crawling is finished

if __name__ == '__main__':
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...