为什么我不能及时获取网页?

时间:2019-08-04 11:55:31

标签: python web request

我正在使用脚本来获取网站上的最新信息,所有页面均为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()

0 个答案:

没有答案