Python实现周期性抓取网页内容的方法


Posted in Python onNovember 04, 2015

本文实例讲述了Python实现周期性抓取网页内容的方法。分享给大家供大家参考,具体如下:

1.使用sched模块可以周期性地执行指定函数

2.在周期性执行指定函数中抓取指定网页,并解析出想要的网页内容,代码中是六维论坛的在线人数

论坛在线人数统计代码:

#coding=utf-8
import time,sched,os,urllib2,re,string
#初始化sched模块的scheduler类
#第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
s = sched.scheduler(time.time,time.sleep)
#被周期性调度触发的函数
def event_func():
  req = urllib2.Request('http://bt.neu6.edu.cn/')
  response = urllib2.urlopen(req)
  rawdata = response.read()
  response.close()
  usernump = re.compile(r'总计 <em>.*?</em> 人在线')
  usernummatch = usernump.findall(rawdata)
  if usernummatch:
    currentnum=usernummatch[0]
    currentnum=currentnum[string.index(currentnum,'>')+1:string.rindex(currentnum,'<')]
    print "Current Time:",time.strftime('%Y,%m,%d,%H,%M',time.localtime(time.time())),'User num:',currentnum
    # 保存结果,供图表工具amcharts使用
    result=open('liuvUserNUm','a')
    result.write('{year: new Date('+time.strftime('%Y,%m,%d,%H,%M',time.localtime(time.time()))+'),value:'+currentnum+'},\n')
    result.close()
#enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,给他的参数(注意:一定要以tuple给如,如果只有一个参数就(xx,))
def perform(inc):
  s.enter(inc,0,perform,(inc,))
  event_func()
def mymain(inc=900):
  s.enter(0,0,perform,(inc,))
  s.run()
if __name__ == "__main__":
  mymain()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
wxpython中利用线程防止假死的实现方法
Aug 11 Python
Python切换pip安装源的方法详解
Nov 18 Python
使用python遍历指定城市的一周气温
Mar 31 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
python和shell获取文本内容的方法
Jun 05 Python
使用Scrapy爬取动态数据
Oct 21 Python
python导入模块交叉引用的方法
Jan 19 Python
记录Python脚本的运行日志的方法
Jun 05 Python
python线程里哪种模块比较适合
Aug 02 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 #Python
python通过文件头判断文件类型
Oct 30 #Python
python制作花瓣网美女图片爬虫
Oct 28 #Python
python制作最美应用的爬虫
Oct 28 #Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 #Python
详解JavaScript编程中的window与window.screen对象
Oct 26 #Python
深入讲解Python中的迭代器和生成器
Oct 26 #Python
You might like
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
PHP生成压缩文件实例
2015/02/07 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP时间函数使用详解
2019/03/21 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
python自动化生成IOS的图标
2018/11/13 Python
python3.6数独问题的解决
2019/01/21 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
环境工程求职简历的自我评价范文
2013/10/24 职场文书
党员一句话承诺大全
2014/03/28 职场文书
安全生产年活动总结
2014/08/29 职场文书
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android