Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用asyncio/Pypeteer时打开的文件过多错误_Python_Chromium_Python Asyncio_Pyppeteer - Fatal编程技术网

Python 使用asyncio/Pypeteer时打开的文件过多错误

Python 使用asyncio/Pypeteer时打开的文件过多错误,python,chromium,python-asyncio,pyppeteer,Python,Chromium,Python Asyncio,Pyppeteer,我正在尝试使用Pypetteer的无头chrome来发出请求。但在经过一定数量的请求后,我不断收到“OSError:[Errno 24]打开的文件太多”。我用losf检查了python进程的开放资源,发现每个新请求都有一行新代码,如下所示 python3 14840 root 11r FIFO 0,8 0t0 64208510 pipe 有人能告诉我哪些资源没有关闭吗?下面是产生此错误的代码 def search(self, search_path): a

我正在尝试使用Pypetteer的无头chrome来发出请求。但在经过一定数量的请求后,我不断收到“OSError:[Errno 24]打开的文件太多”。我用losf检查了python进程的开放资源,发现每个新请求都有一行新代码,如下所示

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()