python3刷新监控网页_python - 如何不刷新网页而监控网页变化?
问 题
我在用python监控一个网页 这个网页不定时的会更新 我要寻找需要匹配的关键词比如‘ABC’ 大概的程序框架如下
基本方法就是 用 selenium 获取源码 然后beautifulsoup解析 然后再去结果里面match 每2秒循环一次
while true:
html = browser.page_source
soup = BeautifulSoup(html)
abc=soup.find_all(text=re.compile("(ABC)"))
if not abc:
.....
else:
.....
browser.refresh()
time.sleep(2.0 - ((time.time() - starttime) % 2.0))
现在问题就是这个程序很依赖网速,browser.refresh() 刷新一次有可能就会用1秒钟
有没有什么办法 不需要刷新网页 就能知道网页有变化
或者有没有其他办法能让我这个程序 不被网速拖累
解决方案
Http Last-Modified
1) 什么是”Last-Modified”?
在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT 客户端第二次请求此URL时,根据 HTTP
协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not
Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。
headers 'If-Modified-Since'
Status Code:304 Not Modified
状态码 304 表示页面未改动
>>> import requests as req
>>> url='http://www.guancha.cn/'
>>> rsp=req.head(url,headers={'If-Modified-Since':'Sun, 05 Feb 2017 05:39:11 GMT'})
>>> rsp
>>> rsp.headers
{'Server': 'NWS_TCloud_S1', 'Content-Type': 'text/html', 'Date': 'Sun, 05 Feb 2017 05:45:20 GMT', 'Cache-Control': 'max-age=60', 'Expires': 'Sun, 05 Feb 2017 05:46:20 GMT', 'Content-Length': '0', 'Connection': 'keep-alive'}
时间改为 昨天(4号)
服务器返回状态码200
并且有 'Last-Modified': 'Sun, 05 Feb 2017 06:00:03 GMT'
表示 最后修改的时间。
>>> hds={'If-Modified-Since':'Sat, 04 Feb 2017 05:39:11 GMT'} # 时间改为 昨天(4号)
>>> rsp=req.head(url,headers=hds)
>>> rsp
>>> rsp.headers
{'Last-Modified': 'Sun, 05 Feb 2017 06:00:03 GMT', 'Date': 'Sun, 05 Feb 2017 06:04:59 GMT', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'X-Daa-Tunnel': 'hop_count=2', 'X-Cache-Lookup': 'Hit From Disktank3 Gz, Hit From Inner Cluster, Hit From Upstream', 'Server': 'nws_ocmid_hy', 'Content-Type': 'text/html', 'Expires': 'Sun, 05 Feb 2017 06:05:59 GMT', 'Cache-Control': 'max-age=60', 'Content-Length': '62608'}
>>>
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起
python3刷新监控网页_python - 如何不刷新网页而监控网页变化?相关推荐
- python访问多个网页_Python 爬虫 2 爬取多页网页
本文内容: Requests.get 爬取多个页码的网页 例:爬取极客学院课程列表 爬虫步骤 打开目标网页,先查看网页源代码 get网页源码 找到想要的内容,找到规律,用正则表达式匹配,存储结果 Re ...
- python读取excel送到网页_python+selenium excel中文读取填充到网页
由于我技术水平,磨磨唧唧很长时间终于弄出来了,在整理的时候思考了下,可能是我当时太关注打印出来的list了 ,list里不能显示中文,我就初以为我总是错了. 附上表格一部分 #coding:utf-8 ...
- php脚本判断页面刷新,javascript判断网页是关闭还是刷新
原理就是通过离开页面行为时间onunload触发时间去检测此时的浏览器的窗口大小,根据大小由此判断用户是刷新,跳转或是关闭行为程序 代码如下 window.onunload = function(){ ...
- 现在打开网页总是先显示“网页无法打开”要刷新几次才行,这是怎么回事?
现在打开网页总是先显示"网页无法打开"要刷新几次才行,这是怎么回事? DNS服务器地址影响网速吗 会影响的 DNS或多或少会有一点影响网速,如果说你在北京,而你用的DNS服务器却在 ...
- 怎么让html自动刷新,“360浏览器怎么设置自动刷新网页解决方案”的解决方案...
问题描述:如何设置360浏览器的自动刷新功能 解决方案: 1.安装360安全浏览器和360极速浏览器.如果你的浏览器不是360的,那么先打开360安全卫士,找到"软件管家",找到& ...
- console js刷新页面_浏览器console自动刷新--转
值班需要监控页面情况,手头也没有专用的监控设备,只能手动刷新.遂度之,解放双手. 代码如下: 1 timeout=prompt("Set timeout (Second):");2 ...
- java ehcahce刷新_springboot结合ehcache防止恶意刷新请求的实现
说明 我们在把开发好的网站上线之前一定要考虑到别人恶意刷新你的网页这种情况,最大限度的去限制他们.否则往往这将搞垮你的应用服务器,想象一下某个恶意用户利用众多肉鸡在1分钟内请求你网页几十万次是个什么情 ...
- php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)
在上线vue开发的前端网页上线后,刷新页面报404错误,因为网页上显示的是静态绝对路径,实际上服务器上是没有改路径的所以刷新汇报错误. 1.vue框架中解决404 vue router mode 默 ...
- android 刷新某条数据_Android 支持刷新、加载更多、带反弹效果的RecyclerView
点击上方"Android技术杂货铺",选择"标星" 干货文章,第一时间送达! 开篇 当前市面上很多支持刷新.加载更多RecyclerView开源库,为何我这里还 ...
最新文章
- 2022-2028年中国分散式风电行业投资分析及前景预测报告
- java中的乐活锁_(转)[乐活]别抱怨了,Shit happens!
- JQUERY的size()与length
- vue实现多行数据提交_(Vue起步)3.Vue设计模式:MVVM模式
- Visual Studio 中的应用程序开发
- 使用JDK 8流在包装对象的集合和包装对象的集合之间转换
- 任何傅里叶级数展开和卷积可以参考一下页面
- Qt:Qt实现网页自动刷新工具
- python小练——下载指定url中的图片
- OFFICE技术讲座:WP/SS文字渲染不开启的条件
- 酷应用背后,低代码正在被重估
- java qq音乐接口 api,QQ音乐的各种相关API
- 补丁(patch)的制作与应用
- iOS开发之--内购、GameCenter、iCloud、Passbook功能开发汇总
- CATIA二次开发—API梳理
- 复旦计算机对口,2019年长宁区公办初中划片电脑派位对口入学方式
- 找不到.jack_您不了解Jack关于Firefox的知识!
- 软考高项 : 计算题汇总
- 微信开发 ━━ 微信商户v3微信支付回调之php篇
- php 公众号发表文章,微信公众号如何发布文章最基本教程