python HTML页面转jpg图片,可实现长截图保存

# coding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import time

start = time.time()
def get_image(url, pic_name):
#chromedriver的路径
    chromedriver = r"C:\Users\Admin\chromedriver_win32\chromedriver.exe"
    os.environ["webdriver.chrome.driver"] = chromedriver
#设置chrome开启的模式,headless就是无界面模式
#一定要使用这个模式,不然截不了全页面,只能截到你电脑的高度
    chrome_options = Options()
    chrome_options.add_argument('headless')
    driver = webdriver.Chrome(chromedriver,chrome_options=chrome_options)
#控制浏览器写入并转到链接
#这里的url因为我的文件是本地的html所以需要你需要动态的网页你自己编写一下
    driver.get(url)
    # time.sleep(1)
#接下来是全屏的关键,用js获取页面的宽高,如果有其他需要用js的部分也可以用这个方法
    width = driver.execute_script("return document.documentElement.scrollWidth")
    height = driver.execute_script("return document.documentElement.scrollHeight")
    print(width,height)
#将浏览器的宽高设置成刚刚获取的宽高
    driver.set_window_size(width, height)
    # time.sleep(1)
#截图并关掉浏览器
    driver.save_screenshot(pic_name)
    driver.close()

#你输入的参数
path = os.getcwd()
# 获取所有文件名的列表
filename_list = os.listdir(path)
# 获取所有HTML文件名列表
htmlname_list = [filename for filename in filename_list \
                 if filename.endswith(".html")]
# print(wordname_list)
for htmlname in htmlname_list :
    # 分离html文件名称和后缀,转化为就jpg名称
    jpgname = os.path.splitext(htmlname )[0] + '.jpg'
    # 如果当前html文件对应的jpg文件存在,则不转化
    if jpgname in filename_list:
        continue
    # 拼接 路径和文件名
    htmlPath = os.path.join(path, htmlname )
    # print(htmlPath)
    pdfpath = os.path.join(path, jpgname )
    get_image(htmlPath, jpgname )
print('HTML---->jpg转换完成,花费时间:',time.time()-start)

需要安装pip install selenium以及安装selenium插件

我自己安装的路径是这个

chromedriver = r"C:\Users\Admin\chromedriver_win32\chromedriver.exe"

你可能感兴趣的:(python,python)