<p>具体代码如下<br/></p><pre class="brush:python;toolbar:false">from selenium import webdriver<br/>import time<br/><br/>def get_full_page_height(driver):<br/> # 执行 JavaScript 获取文档的完整高度<br/> scroll_height = driver.execute_script('return Math.max('<br/> 'document.body.scrollHeight, '<br/> 'document.body.parentNode.scrollHeight, '<br/> 'document.body.offsetHeight, '<br/> 'document.documentElement.clientHeight, '<br/> 'document.documentElement.scrollHeight, '<br/> 'document.documentElement.offsetHeight);')<br/> return scroll_height<br/>def capture_full_page_screenshot(url, save_path):<br/> # 启动Chrome浏览器<br/> options = webdriver.ChromeOptions()<br/> options.add_argument('--headless') # 无头模式,不显示浏览器窗口<br/> driver = webdriver.Chrome(options=options)<br/><br/> try:<br/> # 默认打开网页浏览器大小<br/> driver.set_window_size(1920,1080)<br/> driver.get(url)<br/><br/> # 等待页面完全加载,这里设置等待时间为10秒<br/> time.sleep(10) # 可以根据实际情况调整等待时间<br/><br/><br/><br/> # 获取文档完整渲染后的高度<br/> full_height = get_full_page_height(driver)<br/> print('full_height=%s' % full_height)<br/> if full_height<1080:<br/> full_height = 1080<br/> print('full_height=%s' % full_height)<br/> # 设置浏览器窗口大小为整个页面高度 留出15px 重新设置是为了可以截取整个页面<br/> driver.set_window_size(1920, full_height+15)<br/><br/> # 截取整个页面的效果图<br/> driver.save_screenshot(save_path)<br/> print(f"页面截图已保存至: {save_path}")<br/><br/> except Exception as e:<br/> print(f"截图过程中发生错误: {e}")<br/><br/> finally:<br/> # 关闭浏览器<br/> driver.quit()<br/><br/># 要截取的网页地址<br/>url = r"http://www.80zx.com/" # 请将路径替换为你本地index.html文件的路径<br/><br/><br/># 保存截图的路径及文件名<br/>save_path = "screenshot.png" # 截图保存的文件名及路径<br/><br/># 调用截取页面截图函数<br/>capture_full_page_screenshot(url, save_path)<br/></pre><p><br/></p>
相关文章