要实现每天18:00截取网页并保存到硬盘,文件名带有递增数字且不覆盖已有文件,可以使用Python中的datetime
和uuid
库来获取当前时间和生成唯一的文件名。下面是一个示例代码:
import datetime
import requests
import os
import uuid
def save_webpage():
# 获取当前时间
now = datetime.datetime.now()
# 构造文件名
filename = now.strftime("%Y%m%d%H%M%S") + "-" + str(uuid.uuid4())[:8] + ".html"
# 判断文件名是否已存在
while os.path.exists(filename):
filename = now.strftime("%Y%m%d%H%M%S") + "-" + str(uuid.uuid4())[:8] + ".html"
# 发送请求获取网页内容
url = "http://example.com" # 替换为需要截取的网页URL
response = requests.get(url)
content = response.text
# 保存网页内容到文件
with open(filename, "w", encoding="utf-8") as file:
file.write(content)
print("网页已保存为:", filename)
# 每天18:00执行一次保存操作
now = datetime.datetime.now()
target_time = now.replace(hour=18, minute=0, second=0, microsecond=0)
delta = target_time - now
# 如果当前时间已经超过了18:00,则明天再执行保存操作
if delta.total_seconds() <= 0:
target_time += datetime.timedelta(days=1)
print("下次保存时间:", target_time)
# 等待到达目标时间再执行保存操作
delta = target_time - datetime.datetime.now()
time.sleep(delta.total_seconds())
save_webpage()
请注意,上述代码中的url
变量需要替换为你需要截取的网页的URL。另外,如果要定时执行保存操作,可以使用time.sleep()
函数来等待到达目标时间。