JRazor
@JRazor
Senior StarkOverFlow Programmer

Scrapy & PyQt4: как отправлять старт в Scrapy из GUI и получать в GUI ответы?

Здравствуйте, уважаемые тостеровцы.

Разрабатывал GUI для Scrapy и запутался: в GUI нужно подгрузить модуль со Scrapy, чтобы запустить его с параметрами, а в Scrapy - импортировать GUI, дабы отправлять ему в QLabel и второе окно информацию. Но при импорте.

Для этого импортирую функцию из Scrapy и класс из GUI, но получаю:

File "C:\Users\Eugene\Scrapy\Majestic\gui\gui_for_scrapy.py", line 5, in <module>
    from spider_find_domains import run
  File "C:\Users\Eugene\Scrapy\Majestic\gui\spider_find_domains.py", line 16, in <module>
    from gui_for_scrapy import MyWindow
  File "C:\Users\Eugene\Scrapy\Majestic\gui\gui_for_scrapy.py", line 5, in <module>
    from spider_find_domains import run
ImportError: cannot import name run


В MyWindow - загрузка 'form.ui' и работа с ним, а в 'run' - обычный запуск Scrapy паука:
def run():
        options = {
            'CONCURRENT_ITEMS': concurrent_items,
            'USER_AGENT': 'Googlebot/2.1 (+http://www.google.com/bot.html)',
            'DOWNLOAD_DELAY': download_delay,
            'CONCURRENT_REQUESTS': concurrent_requests,
            'HTTPERROR_ALLOW_ALL': True,
            'SPIDER_MIDDLEWARES': {
                'scrapy.contrib.spidermiddleware.httperror.HttpErrorMiddleware': 300,
                'scrapy.contrib.spidermiddleware.offsite.OffsiteMiddleware': 400,
                }
            }

        spider = SpiderParse()
        settings = get_project_settings()
        settings.overrides.update(options)
        crawler = Crawler(settings)
        crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
        crawler.install()
        crawler.configure()
        crawler.crawl(spider)
        crawler.start()
        log.start(logfile="results.log", loglevel=log.DEBUG, crawler=crawler, logstdout=False)
        reactor.run()
  • Вопрос задан
  • 3020 просмотров
Решения вопроса 1
> Scrapy - импортировать GUI, дабы отправлять ему в QLabel и второе окно информацию.

и для этого вы импортируете свой же GUI модуль, который в свою очередь импортирует ваш же Scrapy модуль и тд? Почему просто не подключить нужную часть Qt, создать сигнал и подключить сигнал к GUI уже в самом GUI модуле?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы