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