话不多说 上代码
import requests
from pyppeteer import launch
# url 代表抓取的网页 ids 是为了分别抓的是哪个页面的id
async def req(url, ids):# 这个地方是禁用 sigint 不然的话 在其他地方调用这个方法会报错 不信 你试试 (main方法自己运行 没啥事)browser = await launch(handleSIGINT=False,handleSIGTERM=False,handleSIGHUP=False)# 新开一个浏览器页面 page = await browser.newPage()# 设置页面大小await page.setViewport({'width': 1920, 'height': 1080})# 用链接截图await page.goto(url)# 以下是配置 的前端页面 的 class 例如 页面中 需要截取 class=content 的 你就写下面的就完事 await page.waitForSelector('.content')await page.waitForSelector('.title')await page.waitForSelector('.title') # 我也不知道我咋复制的多出来了 觉得碍眼 你删了呗await page.waitForSelector('.space')# 这个是 输出的图片地址 绝对路径await page.screenshot({'path': f'D:\\work\\1111{ids}.png'})# 这个是重点 一点要关闭浏览器 要不然耗内存 运行一段时间后 程序会挂await browser.close()
调用代码
反正我是这么写的 你怎么写是你的事
# 获取当前线程的事件循环loop = asyncio.get_event_loop()# 在事件循环中运行异步函数capture_and_ocrloop.run_until_complete(req(url, now22))
还有一种写法我没用 不知道有没有用 你要不试试
asyncio.run(req(url,ids))