程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用Selenium(Python)对大页面进行截图时出现错误超时

发布于2024-11-06 19:35     阅读(1014)     评论(0)     点赞(24)     收藏(3)


当我尝试使用 Selenium 和 Python 以及 Chrome 驱动程序截取大图像的屏幕截图时,出现错误。从昨天开始,我尝试了很多方法,但仍然出现相同的错误。我有截取屏幕截图的代码,但对于特定页面 (1050x8100), 我收到错误 selenium.common.exceptions.TimeoutException:消息:超时:从渲染器接收消息超时:299,800 版本正常(我在其他网页上没有任何错误)

这是我添加的选项(在阅读了 stackoverflow 上的几个问题之后):

chrome_options.add_argument('--headless')  
chrome_options.add_argument('--disable-gpu')  
chrome_options.add_argument('--no-sandbox')  
chrome_options.add_argument('--disable-setuid-sandbox')  
chrome_options.add_argument('--disable-dev-shm-usage')  
chrome_options.add_argument("--start-maximized")  
chrome_options.add_argument('--hide-scrollbars')  
chrome_options.add_argument("--force-device-scale-factor=1")

下面是我的截图代码:

self.driver.get(self.url) 
page_width = self.driver.execute_script("return document.body.scrollWidth") 
page_height = self.driver.execute_script("return document.body.scrollHeight") self.driver.set_window_size(page_width, page_height) 
time.sleep(10) 
png = self.driver.get_screenshot_as_png() 
image = Image.open(io.BytesIO(png)) 
screen_path = os.path.join(folder_output_path, str(number_of_screen) + '.png') image.save(screen_path)

当我将窗口大小设置为较小尺寸时,它正在运行,但我丢失了页面信息。对于具有以下特征的页面:

page_width=1560

page_height=7351

它正在运行,但是对于 (1560x8897) 的页面它不起作用。

有人可以帮我获取整个大页面的屏幕截图吗?


解决方案


optimize尝试通过添加和参数来降低图像质量quality,这应该可以加快保存屏幕截图的速度,例如:

image.save(screen_path, optimize=True, quality=80)

您还可以尝试增加加载页面所需的超时时间,例如

self.driver.set_page_load_timeout(120)



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2043859/ab070ab1481b59d35eca/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)