1、sudo yum install firefox -y
2、安装python3l selenium
sudo yum install python3 python3-pip -ypip3 install selenium
3、下载centos7适配的geckodriver
# 创建一个目录用于存放驱动 mkdir -p ~/webdrivers # 下载最新版本的 Geckodriver (以 v0.33.0 为例) cd ~/webdrivers wget https://github.com/mozilla/geckodriver/releases/download/v0.33.0/geckodriver-v0.33.0-linux64.tar.gz # 解压文件 tar -xvzf geckodriver-v0.33.0-linux64.tar.gz # 移动到系统路径 sudo mv geckodriver /usr/local/bin/ # 设置执行权限 sudo chmod +x /usr/local/bin/geckodriver4、测试截屏代码
#!/usr/local/python3/bin/python3 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService from selenium.webdriver.firefox.options import Options as FirefoxOptions import time def take_full_page_screenshot(url, output_path): firefox_options = FirefoxOptions() firefox_options.add_argument("--headless") # 如果 Firefox 未在默认路径中,可设置二进制路径,例如: # firefox_options.binary_location = '/usr/bin/firefox' service = FirefoxService(executable_path="/usr/local/bin/geckodriver") driver = webdriver.Firefox(service=service, options=firefox_options) try: driver.get(url) time.sleep(2) # 等待页面加载 # 隐藏滚动条(通过注入 CSS) driver.execute_script(""" document.querySelector('html').style.overflow = 'hidden'; document.querySelector('body').style.overflow = 'hidden'; var style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = ` * { -ms-overflow-style: none !important; scrollbar-width: none !important; } *::-webkit-scrollbar { display: none !important; } `; document.head.appendChild(style); """) # 获取页面的实际宽度和高度 required_width = driver.execute_script('return document.documentElement.scrollWidth') required_height = driver.execute_script('return document.documentElement.scrollHeight') # 调整窗口尺寸以包含全部内容 driver.set_window_size(required_width, required_height) time.sleep(1) # 等待窗口调整 # 截取并保存截图 driver.save_screenshot(output_path) print(f"Screenshot saved as {output_path}") print(f"Page dimensions: {required_width}x{required_height}") print(f"<img src='{output_path}' />") except Exception as e: print(f"Error taking screenshot: {str(e)}") finally: driver.quit() if __name__ == "__main__": url = "https://www.qq.com" output_path = "ff_screenshot2.png" take_full_page_screenshot(url, output_path)
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?