Gerapy / GerapyPlaywright

Downloader Middleware to support Playwright in Scrapy & Gerapy
106 stars 24 forks source link

twisted.internet.error.ReactorAlreadyInstalledError: reactor already installed #9

Closed yyyy777 closed 2 years ago

yyyy777 commented 2 years ago

python: 3.9 GerapyPlaywright: 0.2.4 os: mac 11.6

运行scrapy crawl spider的时候直接报错:

Traceback (most recent call last):
  File "/Users/zz/.virtualenvs/crawler-apk/bin/scrapy", line 8, in <module>
    sys.exit(execute())
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/cmdline.py", line 145, in execute
    _run_print_help(parser, _run_command, cmd, args, opts)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/cmdline.py", line 100, in _run_print_help
    func(*a, **kw)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/cmdline.py", line 153, in _run_command
    cmd.run(args, opts)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/commands/crawl.py", line 22, in run
    crawl_defer = self.crawler_process.crawl(spname, **opts.spargs)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/crawler.py", line 205, in crawl
    crawler = self.create_crawler(crawler_or_spidercls)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/crawler.py", line 238, in create_crawler
    return self._create_crawler(crawler_or_spidercls)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/crawler.py", line 313, in _create_crawler
    return Crawler(spidercls, self.settings, init_reactor=True)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/scrapy/crawler.py", line 82, in __init__
    default.install()
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/twisted/internet/selectreactor.py", line 194, in install
    installReactor(reactor)
  File "/Users/zz/.virtualenvs/crawler-apk/lib/python3.9/site-packages/twisted/internet/main.py", line 32, in installReactor
    raise error.ReactorAlreadyInstalledError("reactor already installed"
twisted.internet.error.ReactorAlreadyInstalledError: reactor already installed

这个应该改哪里呢

yyyy777 commented 2 years ago

解决了 需要在settings里添加TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor" @Germey 崔大要不要考虑下加到readme里...

Germey commented 2 years ago

多谢,的确是个问题,可以告诉下Scrapy的版本吗?

yyyy777 commented 2 years ago

多谢,的确是个问题,可以告诉下Scrapy的版本吗? scrapy==2.6.1