
python+selenium+headless截取html界面图片
python+selenium+headless截取html界面图片,服务器端html图片截取
# coding=utf-8 from selenium import webdriver from selenium.webdriver.chrome.options import Options import time import sys url = None for num in range(1, len(sys.argv)): if num == 1: url = sys.argv[1] print("parameter %d is %s " % (num, sys.argv[num])) # url="https://www.developzhe.com/" if url == None: url="https://www.developzhe.com/" chrome_options = Options() # specify headless mode chrome_options.add_argument("--headless") # 无界面模式运行 chrome_options.add_argument('--disable-gpu') chrome_options.add_argument("--window-size=1920,1080") # 设置屏幕宽高 chrome_options.add_argument("--hide-scrollbars") chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片 driver = webdriver.Chrome(options=chrome_options, executable_path='/usr/lib64/chromium-browser/chromedriver') driver.get(url) print(driver.title) save_fn = './images/163.png' time.sleep(4) # 获取document页面宽高 scroll_width = driver.execute_script('return document.body.parentNode.scrollWidth') scroll_height = driver.execute_script('return document.body.parentNode.scrollHeight') print(scroll_width, scroll_height) driver.set_window_size(scroll_width, scroll_height) # 变更窗口大小 time.sleep(3) driver.save_screenshot(save_fn) # 截取浏览器界面,保存图片 driver.quit()
执行以下命令就行:
python3 headless_jp_linux.py https://www.developzhe.com/
要安装下字体,不然文字有些显示不出来
在centos中执行:yum install bitmap-fonts bitmap-fonts-cjk
在ubuntu中执行:sudo apt-get install xfonts-wqy
wget http://fbi-fonts.oss-cn-shanghai.aliyuncs.com/msyh.ttf -O /home/admin/msyh.ttf yum install -y freetype freetype-devel fontconfig fontconfig-devel mkdir -p /usr/share/fonts/chinese/TrueType/ cp /home/admin/msyh.ttf /usr/share/fonts/chinese/TrueType/ fc-cache -fv