Linux命令行界面使用Python+Selenium+Chrome对网页截图
技术积累 Python Selenium chrome

linux命令行界面使用Python+Selenium+Chrome对网页截图保存(js渲染后的页面)

程序版本:
系统:centos7
python:3.6
Selenium:3.141
chrome|chromedriver:88.0.4324.96
chrome版本下载:Linux Google Chrome
chromedriver版本下载:chromedriver

程序安装:

# python3安装略过

# Selenium安装
pip3 install Selenium

# 安装chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install google-chrome-stable_current_x86_64.rpm -y

# 下载chromedriver(先确认安装的chrome版本,再下载对应的chromedriver版本)
#查看版本
[root@localhost ~]#rpm -qa|grep google-chrome
google-chrome-stable-88.0.4324.96-1.x86_64

#下载对应版本chromedriver
wget http://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
mv chromedriver /usr/local/bin/

python代码:

#!/bin/env python3

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

options=webdriver.ChromeOptions()

# 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
options.add_argument('--headless')

# 谷歌文档提到需要加上这个属性来规避bug
options.add_argument('--disable-gpu')

# 取消沙盒模式
options.add_argument('--no-sandbox')
 
options.add_argument('--disable-dev-shm-usage')

# 指定浏览器分辨率
options.add_argument('window-size=1920x1080')

driver=webdriver.Chrome(options=options)

#网页地址
driver.get('https://www.baidu.com')
#等待2秒再截图,如果网页渲染的慢截图的内容会有问题
#time.sleep(2)

#截图
driver.get_screenshot_as_file('/tmp/baidu.png')

#退出
driver.close()

执行脚本截图的图片乱码:

Linux命令行界面使用Python+Selenium+Chrome对网页截图

# 解决文字乱码
把windows系统下微软雅黑字体拷贝到linux系统下
# windows字体目录
C:\Windows\Fonts\微软雅黑\MSYH.TTC
# linux字体目录
/usr/share/fonts

再次查看网页截图图片:

Linux命令行界面使用Python+Selenium+Chrome对网页截图


本文最后记录时间 2024-04-10
文章链接地址:
https://wojc.cn/archives/948.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
使用腾讯云CDN的SDK 用脚本去刷新URL缓存
谷歌浏览器Linux版下载
pip 安装错误 Command "python setup.py egg_info" failed with error code
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless

Fontmin 字体文件提取压缩子集化工具

Linux下给文本添加行号

留言列表

  1. xzy
    xzy
    Mac OS X 10.15.6 Safari
    中国上海市联通IDC机房

    太厉害了,成功了,真心感谢博主!

  2. 多思多金
    Windows 10 Google Chrome
    中国上海市电信

    如果网页用的字体样式太多是不是要把网页里支持的字体都要复制到linux项目下

    1. xzy
      xzy
      Mac OS X 10.15.6 Safari
      中国上海市联通IDC机房

      我实测不需要把字体都加进去

    2. Awking
      Windows 10 Google Chrome
      中国上海市电信

      这个我不太清楚,应该只能用一种字体吧...

留言

顶部