Python + selenium + windows定时任务 实现定时每日定时长截图

首先下载一个chromdriver插件(插件下载地址:http://chromedriver.storage.googleapis.com/index.html ),之后在小黑窗(win+r)输入cmd,回车,打开黑窗口之后pip install selenium (-i https://pypi.tuna.tsinghua.edu.cn/simple some-package)如果卡就加上清华源

普通截图直接使用save_screenshot即可。这里为了实现长截图,需要使用无头浏览(headless)实现。

代码如下

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import time
def get_image(url, filename):
#chromedriver的路径
chromedriver = r"D:\python\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)
driver.maximize_window() #窗口最大化
#控制浏览器写入并转到链接
driver.get(url)
time.sleep(1)
#根据scroll获取页面的宽高,可以根据浏览模式,需要选择下面三种方案
width = driver.execute_script("return document.documentElement.scrollWidth")
height = driver.execute_script("return document.documentElement.scrollHeight")
#根据offset获取可见区域大小
# width = driver.execute_script("return document.body.offsetWidth")
# height = driver.execute_script("return document.body.offsetHeight")
# #获取网页可见区域大小
# width = driver.execute_script("return document.body.clientWidth")
# height = driver.execute_script("return document.body.clientHeight")
print(width,height)
#这里使用xpath获取页面元素,也可以使用其他方法。这里设置点击事件是为了截取某些页面时本身自动点击了某个元素,会导致截图变暗,如果没有这类问题不用加点击事件。具体描述看下图
xpath1 = driver.find_element_by_xpath("//div[@class='sale-btn']/i[@class='iconfont iconarrow-up']")
xpath1.click()
#将浏览器的宽高设置成上面获取的宽高
driver.set_window_size(width, height)
time.sleep(1)
#截图并关掉浏览器
driver.save_screenshot(filename)
driver.close()
#上面是封装的函数,下面是需要输入的参数
#要保存图片的路径(选择一个文件夹)
os.chdir(r'D:/。。。/。。。。/')
#要截取的网页
url = 'https://www.xxx.cn/'
#以时间格式命名的图片名,不加replace会无法保存,因为%X时间格式:冒号无法命名
pic_name = time.strftime("%Y-%m-%d-%X").replace(':',".") + '_xxx网站截图' + '.png'
# 调用函数
get_image(url, filename)

python 滚动截取浏览器页面 python 滚动截屏_python 滚动截取浏览器页面

python 滚动截取浏览器页面 python 滚动截屏_定时任务_02

区别就是不加click是下面这种,点击取消这个折扣显示,就是上面正常我们想要的结果。

此时代码部分就结束了。接下来要设置定时任务

windows中自带定时任务管理程序

找到此电脑,右击打开属性

会出现这个界面

python 滚动截取浏览器页面 python 滚动截屏_python如何截长图_03

点击任务计划程序,在右侧点击创建基本任务

python 滚动截取浏览器页面 python 滚动截屏_定时任务_04

名称和描述自己写,下一步看自己需求选择任务开始时间,下一步设置执行时间,下一步默认启动程序,下一步

python 滚动截取浏览器页面 python 滚动截屏_Python_05

“程序和脚本”浏览的是Python解释器的名称,一般就是python.exe

“起始于“文本框中填的是Python解释器的目录,例如“D:\Python37\python.exe”

“添加参数“文本框中填的是你要运行的Python程序的完整路径例如“D:\爬虫\长截图.py”.这里一定要是.py。不要.ipynb格式的文件。py类型的文件里面就是上面的代码,最好把注释去掉只保留代码。