Здравствуйте, уважаемые тостеровцы.
Разрабатывал 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()