接着完善一下自己期望的功能,自动轮训所有的网站,并且打开网址,在桌面停留20s自己观看,自动截屏保存在D盘,保存的截图命名为当时截屏时间。
我们直接上代码,代码中有注释,每个人可以直接根据自己需求,直接更改网址列表,停止轮训时间,甚至你要觉得停留时间太长或者太慢、轮训间隙太长或者太短都可以自己更改秒数。
接下来话不多说直接上代码。
import os
import time
import webbrowser
from threading import Timer
# 重写了threading.Timer的 run 方法,让start只有一个线程运行,防止崩溃
class RepeatingTimer(Timer):
def run(self):
while not self.finished.is_set():
self.function(*self.args, **self.kwargs)
self.finished.wait(self.interval)
# 设置访问网站列表
urllist = [
'https://baidu.com',
'https://qq.com',
'https://alibaba.com',
'https://jd.com',
'https://mi.com'
]
# 设置关闭定时器时间
time_end = time.strptime("2022/12/12 12:00:00", '%Y/%m/%d %H:%M:%S')
def func():
for url in urllist:
webbrowser.open(url, 2, autoraise=True) # 打开页面
time.sleep(10) # 设置每次打开新页面的等待时间
time_new = time.strftime("%Y年%m月%d日%H时%M分%S秒") # 获取现在本地时间
os.system(
"start chrome --headless --hide-scrollbars --disable-gpu --screenshot=d:\{}.jpg --window-size=1280,1696 {}"
.format(time_new, url)) # 使用无头浏览器截屏,保存路径为D盘,名称为截屏时间
time.sleep(10) # 设置每次等待关闭浏览器的时间
os.system("taskkill /F /im chrome.exe") # 在Windows OS中关闭
# 判断轮训时间
time_now = time.localtime() # 获取现在本地时间
if time_now > time_end:
t.cancel() # 关闭定时器
print('已过设定时间,关闭定时器')
else:
print('未到设定时间继续轮训')
t = RepeatingTimer(6000, func) # 设置定时器,每6000秒执行一次函数
t.start() #