Ошибка слишком большого количества открытых файлов при использовании asyncio/pyppeteer

Я пытаюсь делать запросы с безголовым хромом, используя pyppeteer. Но я продолжаю получать "OSError: [Errno 24] Too many open files" после определенного количества запросов. Я проверил открытые ресурсы процесса python с помощью losf и обнаружил, что с каждым новым запросом появляется новая строка, подобная следующей

python3 14840 root   11r  FIFO        0,8      0t0 64208510 pipe

Может кто-нибудь сказать мне, какие ресурсы не закрываются? Код, который производит эту ошибку ниже

def search(self, search_path):
    async def main(url):
        browser = await launch(args=['--no-sandbox'], handleSIGINT=False, handleSIGTERM=False, handleSIGHUP=False)
        page = await browser.newPage()
        await page.setJavaScriptEnabled(False)
        try:
            response = await page.goto(url, options={"timeout": 50000})
        except pyppeteer.errors.TimeoutError:
            pass

        src = await page.content()
        await browser.close()
        return src

    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    url = "https://www.example.com" + search_path
    val = asyncio.get_event_loop().run_until_complete(main(url))
    loop.close()

РЕДАКТИРОВАТЬ

Мне удалось закрыть открытые трубы, позвонив

browser.process.communicate() 

0 ответов

Другие вопросы по тегам