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中的exec、eval使用实例
Sep 23 Python
Python求导数的方法
May 09 Python
Python 常用string函数详解
May 30 Python
Python执行时间的计算方法小结
Mar 17 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
django加载本地html的方法
May 27 Python
python+splinter自动刷新抢票功能
Sep 25 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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
第六节--访问属性和方法
2006/11/16 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
Jquery easyui 实现动态树
2015/11/17 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python生成不重复随机值的方法
2015/05/11 Python
python的中异常处理机制
2018/08/30 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
python读取mysql数据绘制条形图
2020/03/25 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
残疾人小组计划书
2014/04/27 职场文书
停课通知书
2015/04/24 职场文书
国际贸易实训总结
2015/08/03 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL