Python获取央视节目单的实现代码


Posted in Python onJuly 25, 2015

本文实例讲述了Python获取央视节目单的方法。分享给大家供大家参考。具体如下:

#! /usr/bin/python 
# -*- coding: utf-8 -*- 
import urllib,re,unicodedata,string,sys 
from time import strftime,localtime 
channel={"1":"CCTV-1","2":"CCTV-2","3":"CCTV-3","4":"CCTV-4亚洲", 
  "5":"CCTV-4欧洲","6":"CCTV-4美洲","7":"CCTV-5","8":"CCTV-6", 
  "9":"CCTV-7","10":"CCTV-8","11":"CCTV-9","12":"CCTV-10", 
  "13":"CCTV-11","14":"CCTV-12","15":"CCTV新闻","16":"CCTV少儿", 
  "17":"CCTV音乐","18":"CCTV_E","19":"CCTV-F","20":"CCTV-高清"} 
if __name__=="__main__": 
  print "@@" 
  print "@@ 你可以在命令行后输入数字(1-20)来选择频道 " 
  print "@@ 通过在命令行后键入help获取频道列表" 
  print "@@" 
  if len(sys.argv)==1: 
    Select="8" 
  else: 
    if sys.argv[1]=="help": 
      for i in range(len(channel)): 
        print "%3d : %11s" % (i+1, channel["%s" % (i+1)]), 
        if(i%4 == 3): 
          print "" 
      sys.exit(0) 
    if string.atoi(sys.argv[1])>20 or string.atoi(sys.argv[1])<=0: 
      print "Out of Range. Please Select 1-20." 
      sys.exit(0) 
    else: 
      Select=sys.argv[1] 
  print '正在获取节目单,请稍后...' 
  date=strftime('%Y%m%d',localtime()) 
  response = urllib.urlopen("http://tv.cctv.com/soushi/28/0"+Select+"/"+date+".shtml") 
  Result=response.read() 
  #list=re.findall(r"<div class='tlb_right'><div class='l'>(.+?)<script",Result,re.S) 
  list=re.findall(r"上午节目(.+?)<script",Result,re.S) 
  list2=re.findall(r"<li>(.+?)</li>",list[0],re.S) 
  morning=[] 
  afternoon=[] 
  listnum=0 
  for i in range(len(list2)): 
    i=re.sub('<.+?>','',list2[i]) 
    if string.atoi(i[:2])>=12: #将上午的节目于下午的节目分开 
      afternoon.append(i) 
    else: 
      morning.append(i) 
  if len(morning)>len(afternoon): 
    listnum=len(morning) 
  else: 
    listnum=len(afternoon) 
  print "-"*80, 
  print " "*13+"上午节目"+" "*26+"下午节目" 
  print " "*14+"========"+" "*26+"========" 
  for i in range(listnum): 
    if(i<len(morning)): 
      print "%-4s %-29s" %(morning[i][:5],morning[i][5:]), 
    else: 
      print " "*35, 
    if(i<len(afternoon)): 
      print "%-4s %-30s" %(afternoon[i][:5],afternoon[i][5:]) 
    else: 
      print " "*37 
  print "-"*80, 
  print " "*24,strftime("%Y年%m月%d日"), 
  print "%s 节目单" %channel[Select]

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

Python 相关文章推荐
python基础教程之udp端口扫描
Feb 10 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
Python文件读写保存操作的示例代码
Sep 14 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Django实现auth模块下的登录注册与注销功能
Oct 10 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 #Python
将Django框架和遗留的Web应用集成的方法
Jul 24 #Python
将Python的Django框架与认证系统整合的方法
Jul 24 #Python
Django与遗留的数据库整合的方法指南
Jul 24 #Python
简介Django中内置的一些中间件
Jul 24 #Python
Python字符串转换成浮点数函数分享
Jul 24 #Python
详解Python的Django框架中的中间件
Jul 24 #Python
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
python实现简单的socket server实例
2015/04/29 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
对Python 数组的切片操作详解
2018/07/02 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
酒店门卫岗位职责
2013/12/29 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
检讨书模板
2015/01/29 职场文书
企业财务管理制度范本
2015/08/04 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers