Python使用Selenium包谷歌无头浏览器进行完整长截图

写在前面
想很简单,做很难,坚持更难,克服惰性。每天学一点,不会的就少一点。
养成习惯很重要,先从点赞开始吧!关注[程序员之道],前行道路不再迷茫!

不知道你有没有碰到过在开发过程中需要爬取网页,或者截取网页内容。这时候我们的selenium就要大显身手了!

准备工作

什么是无头浏览器呢,就是没有用户图形界面的Web浏览器,可以方便的通过程序进行控制或模拟用户的网页访问行为。这不就是天然为自动化测试准备的嘛。

下载无头浏览器驱动

下载链接
在这里插入图片描述

可以根据自己的Chrome版本选择合适的无头浏览器驱动版本。一般来说,版本相近即可。

比如我的Chrome版本:
在这里插入图片描述

驱动存储

将下载的驱动存储到自己的目录,比如/Users/Desktop/soft/chromedriver

代码实现

代码实现的主要逻辑非常简单。

  1. 设置无头浏览器驱动路径及参数。
  2. 获取网页内容。
  3. 执行script脚本,设置最大宽度及高度(如果没有此步骤,截图只是一部分)。
  4. 保存图片。

具体代码实现:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

path = r'/Users/Desktop/soft/chromedriver'

def download(url, pngName):
    # 设置chrome驱动的路径及参数
    browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
    # 获取网页内容
    browser.get(url)
    # 通过执行脚本,设置滚动条到最大宽度及最大高度
    width = browser.execute_script("return document.documentElement.scrollWidth")
    height = browser.execute_script("return document.documentElement.scrollHeight")
    browser.set_window_size(width, height)
    # 是否需要超时等待
    # time.sleep(10)
    # 保存的截图名字
    browser.save_screenshot(pngName)
    browser.quit()
if __name__ == '__main__':
    url = 'https://www.w3school.com.cn/'
    pngPath = '/Users/Desktop/PycharmProjects/python-learn/image/'
    pngName = pngPath + "w3school.png"
    download(url, pngName)

截图效果

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值