scrapy-драматург:- Загрузчик/обработчики: scrapy.исключения.Не поддерживается: асинхронный электрореактор

#python #scrapy #playwright #playwright-python

#python #scrapy #playwright #playwright-python

Вопрос:

Я попытался извлечь некоторые данные из динамически загружаемого веб-сайта javascript с помощью scrapy-playwright , но застрял в самом начале.

С того места, где я стою лицом к трублесу в settings.py файл выглядит следующим образом:

#драматург

 DOWNLOAD_HANDLERS = {  "http": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",  "https": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",  }  #TWISTED_REACTOR = 'twisted.internet.asyncioreactor.AsyncioSelectorReactor' #ASYNCIO_EVENT_LOOP = 'uvloop.Loop'  

Когда я ввожу следующий отрывок-драматург Хендлер:

 DOWNLOAD_HANDLERS = {  "http": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",  "https": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler", }  

Затем я получил:

 scrapy.exceptions.NotSupported: Unsupported URL scheme 'https': The installed reactor  (twisted.internet.selectreactor.SelectReactor) does not match the requested one (twisted.internet.asyncioreactor.AsyncioSelectorReactor)  

Когда я вводлю TWISTED_REACTOR»

 TWISTED_REACTOR = 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'  

Затем я получил:

 raise TypeError( TypeError: SelectorEventLoop required, instead got: lt;ProactorEventLoop running=False closed=False debug=Falsegt;  

В конце концов,когда я вводлю ASYNCIO_EVENT_LOOP

Затем я получил:

 ModuleNotFoundError: No module named 'uvloop'  

Наконец, не удалось установить «uvloop»

 pip install uvloop  

Скрипт

 import scrapy from scrapy_playwright.page import PageCoroutine  class ProductSpider(scrapy.Spider):  name = 'product'   def start_requests(self):  yield scrapy.Request(  'https://shoppable-campaign-demo.netlify.app/#/',  meta={  'playwright': True,  'playwright_include_page': True,  'playwright_page_coroutines': [  PageCoroutine("wait_for_selector", "div#productListing"),  ]  }  )   async def parse(self, response):  pass  # parses content