利用Python对网页渲染效果保存为图片

      发布在:Python技术      评论:0 条评论
<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(&#39;return Math.max(&#39;<br/> &#39;document.body.scrollHeight, &#39;<br/> &#39;document.body.parentNode.scrollHeight, &#39;<br/> &#39;document.body.offsetHeight, &#39;<br/> &#39;document.documentElement.clientHeight, &#39;<br/> &#39;document.documentElement.scrollHeight, &#39;<br/> &#39;document.documentElement.offsetHeight);&#39;)<br/> return scroll_height<br/>def capture_full_page_screenshot(url, save_path):<br/> # 启动Chrome浏览器<br/> options = webdriver.ChromeOptions()<br/> options.add_argument(&#39;--headless&#39;) # 无头模式,不显示浏览器窗口<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(&#39;full_height=%s&#39; % full_height)<br/> if full_height&lt;1080:<br/> full_height = 1080<br/> print(&#39;full_height=%s&#39; % full_height)<br/> # 设置浏览器窗口大小为整个页面高度 留出15px 重新设置是为了可以截取整个页面<br/> driver.set_window_size(1920, full_height+15)<br/><br/> # 截取整个页面的效果图<br/> driver.save_screenshot(save_path)<br/> print(f&quot;页面截图已保存至: {save_path}&quot;)<br/><br/> except Exception as e:<br/> print(f&quot;截图过程中发生错误: {e}&quot;)<br/><br/> finally:<br/> # 关闭浏览器<br/> driver.quit()<br/><br/># 要截取的网页地址<br/>url = r&quot;http://www.80zx.com/&quot; # 请将路径替换为你本地index.html文件的路径<br/><br/><br/># 保存截图的路径及文件名<br/>save_path = &quot;screenshot.png&quot; # 截图保存的文件名及路径<br/><br/># 调用截取页面截图函数<br/>capture_full_page_screenshot(url, save_path)<br/></pre><p><br/></p>
相关文章
热门推荐