#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