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 相关文章推荐
Python创建文件和追加文件内容实例
Oct 21 Python
Python快速排序算法实例分析
Nov 29 Python
Python分支结构(switch)操作简介
Jan 17 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
Django实现跨域的2种方法
Jul 31 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
python使用turtle库绘制奥运五环
Feb 24 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
python中sys模块的介绍与实例
Apr 17 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
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
Yii2中datetime类的使用
2016/12/17 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
Python闭包实现计数器的方法
2015/05/05 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
python实现网站的模拟登录
2016/01/04 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
增大python字体的方法步骤
2020/07/05 Python
python实现简单文件读写函数
2021/02/25 Python
SQL注入攻击的种类有哪些
2013/12/30 面试题
宣传部部长竞选演讲稿
2014/04/26 职场文书
促销活动计划书
2014/05/02 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
品牌服务方案
2014/06/03 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
Minikube搭建Kubernetes集群
2022/03/31 Servers