|
|
|
@ -32,7 +32,7 @@ async def shot(url):
|
|
|
|
|
await page.goto(url, wait_until='domcontentloaded', timeout=60000)
|
|
|
|
|
logger.info("页面加载完成,等待图片加载")
|
|
|
|
|
# 增加更长的等待时间确保图片加载完成
|
|
|
|
|
await page.wait_for_timeout(2000)
|
|
|
|
|
await page.wait_for_timeout(1000)
|
|
|
|
|
|
|
|
|
|
logger.info("获取页面高度信息")
|
|
|
|
|
# 获取页面总高度
|
|
|
|
@ -50,12 +50,12 @@ async def shot(url):
|
|
|
|
|
logger.info(f"滚动到位置: {current_position}")
|
|
|
|
|
await page.evaluate(f'() => window.scrollTo(0, {current_position})')
|
|
|
|
|
# 等待一小段时间让懒加载触发
|
|
|
|
|
await page.wait_for_timeout(2000)
|
|
|
|
|
await page.wait_for_timeout(1000)
|
|
|
|
|
|
|
|
|
|
logger.info("滚动完成,回到顶部")
|
|
|
|
|
# 回到顶部再等待一下
|
|
|
|
|
await page.evaluate('() => window.scrollTo(0, 0)')
|
|
|
|
|
await page.wait_for_timeout(2000)
|
|
|
|
|
await page.wait_for_timeout(1000)
|
|
|
|
|
|
|
|
|
|
logger.info("开始截图")
|
|
|
|
|
img = await page.screenshot(full_page=True, type='png')
|
|
|
|
@ -70,7 +70,7 @@ async def main():
|
|
|
|
|
img = await shot(url)
|
|
|
|
|
logger.info("保存图片到文件")
|
|
|
|
|
# 保存图片到文件
|
|
|
|
|
with open('screenshot.png', 'wb') as f:
|
|
|
|
|
with open('d:/screenshot.png', 'wb') as f:
|
|
|
|
|
f.write(img)
|
|
|
|
|
logger.info("图片保存完成")
|
|
|
|
|
return img
|
|
|
|
|