我正在使用脚本来获取网站上的最新信息,所有页面均为HTML。我的脚本每分钟检查一次,以查看网站上是否有任何更改。但是,每次我进行新更改时,它表明HTML页面的最后修改时间约为9分钟。我已经设置了正确的参数以避免缓存。并且响应状态代码为200。为什么我总是在9分钟前得到更改?页面更新的时间不是最后一次吗? 我的期望是:我应该在60秒内收到网络更改通知,而不是9分钟后。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import io
import sys
import datetime
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
from lxml import html
import xml
import json
import requests
import tkinter as tk
from tkinter import messagebox
import time
import winsound
import random
lastetag=""
def detectchange():
url = "http://59.252.41.1/?nocache=true&max-age=0"
headers = {
'Cache-Control': 'no-store',
'Pragma': 'no-cache',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
'accept-encoding': 'gzip, deflate',
'accept-language': 'zh-CN,zh;q=0.9',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
}
s = requests.session()
s.keep_alive = False
s.headers = headers
req = s.get(url,verify=False)
global lastetag
if(req.headers['etag'] != lastetag):
now_time = datetime.datetime.now()
timestring = datetime.datetime.strftime(now_time,'%H:%M:%S')
messagebox.showinfo(timestring,message)
lastetag=req.headers['etag']
else:
time.sleep(60)
if __name__=='__main__':
while(True):
detectchange()