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简单日志处理类分享
Feb 14 Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
python 自动批量打开网页的示例
Feb 21 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
利用python开发app实战的方法
Jul 09 Python
django之自定义软删除Model的方法
Aug 14 Python
python实现简单井字棋小游戏
Mar 05 Python
Python3爬虫发送请求的知识点实例
Jul 30 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 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
Zend Guard一些常见问题解答
2008/09/11 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
javascript入门基础之私有变量
2010/02/23 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
python基于event实现线程间通信控制
2020/01/13 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
工商管理本科毕业生求职信范文
2013/10/05 职场文书
材料采购员岗位职责
2013/12/17 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
学风建设演讲稿
2014/09/12 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
民事辩护词范文
2015/05/21 职场文书
高一地理教学工作总结
2015/08/12 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
vue中 this.$set的使用详解
2021/11/17 Vue.js