python将网页转换为图片保存

前言:我们可能会遇到将html网页转为图片,介绍我遇到的两种不同情况下的方式。
环境:python中的selenium
1.网站中的网页转换为图片:
思路:使用selenium的PhantomJS将网页转换为图片。

#-*- coding=utf-8 -*-
#@Time : 2020/8/7 10:08 PM
#@Author : 小邋遢
#@File : tset.py
#@Software : PyCharm

from selenium import webdriver  # 从selenium库导入webdirver
#截取网页照片函数
def screen_shot(url,png_name):
    # 使用webdirver.PhantomJS()方法新建一个phantomjs的对象,这里会使用到phantomjs.exe,环境变量path中找不到phantomjs.exe,则会报错
    brower = webdriver.PhantomJS()
    # 使用get()方法,打开指定页面。注意这里是phantomjs是无界面的,所以不会有任何页面显示
    brower.get(url)
    # 设置phantomjs浏览器全屏显示
    brower.maximize_window()
    # 使用save_screenshot将浏览器正文部分截图,即使正文本分无法一页显示完全,save_screenshot也可以完全截图
    brower.save_screenshot(png_name)
    # 关闭phantomjs浏览器,不要忽略了这一步,否则你会在任务浏览器中发现许多任务
    brower.close()
if __name__ == '__main__':
    url ="https://news.163.com/20/0807/19/FJEUBJJU0001899O.html"
    screen_shot(url,'1.png')

效果如下:
在这里插入图片描述

2.将本地的文件夹下的html文件保存为图片。

#-*- coding=utf-8 -*-
#@Time : 2020/8/7 7:55 PM
#@Author : 小邋遢
#@File : get_image.py
#@Software : PyCharm

"""
将html页面转换为图片
"""
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--start-maximized')
path = os.getcwd()
filename = path + "/data/train/article/img/"


for i in range(60):
    url = "file://(你的路径,如/user,记住这里是三个/)" + "{}".format(i+1) +".html"
    print(url)
    driver = webdriver.Chrome(options=chrome_options)
    driver.get(url)
    # 将该页面的展开到最大
    width = driver.execute_script("return Math.max(document.body.scrollWidth,document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth);")
    height = driver.execute_script("return Math.max(document.body.scrollHeight, document.body.offsetHeight,document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);")
    driver.set_window_size(width,height)
    
    driver.save_screenshot(os.path.join(filename,str(i+1)+'.png'))
    driver.close()

结果如下图:
在这里插入图片描述

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值