阅读 33

pyppeteer文件下载

需要pyppeteer下载文件,网上没什么资料,自己摸索了下。


def check_file(path):#利用文件下载之后,是否存在这个文件来判断下载是否成功,
    while not bool(os.listdir('C:/' + path)):
        pass
    return bool(os.listdir('C:/' + path))


async def main():
    browser = await launch({
        'headless': False,
    })
    file_path = '/tmp/文件名' #文件存储路径,也要用来检测是否下载成功,建议独一无二的下载路径,防止起冲突
    page = await browser.newPage()
    cdp = await page.target.createCDPSession()
    await cdp.send('Page.setDownloadBehavior', {'behavior': 'allow', 'downloadPath': file_path})#设置下载路径
    try:
        await page.goto('文件下载路径')#这一块主要打开文件下载url会让页面关闭,加了try
    except:
        pass
    await asyncio.sleep(5)
    print('下载完毕') if check_file(file_path) else print("下载失败") 
    await browser.close()


asyncio.get_event_loop().run_until_complete(main())复制代码

欢迎关注小白微信公众号【小白技术社】,一起学习一起交流

评论