python解析中国天气网的天气数据


Posted in Python onMarch 21, 2014

使用方法:terminal中输入

python weather.py http://www.weather.com.cn/weather/101010100.shtml

北京6天的天气数据 json格式

#coding=utf-8  
#weather.py  
import urllib  
import re  
import simplejson  
import sys  if len(sys.argv) != 2:  
    print 'please enter: python ' + sys.argv[0] + '  <url>'  
    exit(0)   
url = sys.argv[1];  
def readurlPageContent(url):#获取页面的所有数据 逐行读取  
    webpage = urllib.urlopen(url);  
    line = webpage.readline();  
    data = ''  
    while line:  
        data = data + line.strip(); #去除每行两边的的空格  
        line = webpage.readline();   
    return data  
def getDatabody(data):  
    reg = re.compile(r'(<div class=\"weatherYubaoBox\">(?:(?!<div)(?!</div).)*</div>)');  
    matchs = reg.findall(data,re.I);  
    if len(matchs) > 0:  
        return matchs[0]  
    return None  
def getSixDayWeather(data):  
    regs = re.compile(r'>((?:(?!<)(?!>)(?!var).)+)<');  
    datas = regs.findall(data)  
    if len(datas) > 12:  
        datas = datas[12:len(datas)-7];#提取其中的78项 即后面6天的天气数据 每天相关的信息有13个  
        return datas      
    return None  
  
data = readurlPageContent(url);  
match_data = getDatabody(data)  
if match_data == None :  
    print 'get weather data fail'  
    exit(0)  
weathers_data = getSixDayWeather(match_data)  
if weathers_data == None:  
    print 'get six day info fail'  
    exit(0)  
count = len(weathers_data);  
groups_item_count = count / 6;  
weathers = {};  
groups = [];  
start = 0  
for item in weathers_data :  
    if (start % groups_item_count) == 0:  
        groups = [];  
        weathers[('day'+str(start/groups_item_count + 1))] = groups;  
    groups.append(item)  
    start = start + 1  
  
print simplejson.dumps(weathers, encoding='UTF-8', ensure_ascii=False) 

注:本文中使用了第三方JSON库simplejson,安装方法参考下面:
1.下载:http://pypi.python.org/pypi/simplejson/ ,文件为压缩文件
2.解压:可以直接右键:解压文件.例如:D:/simplejson
3.开始---运行---输入命令:cmd
4.进入到目录(如:D:/simplejson)

    cd D:/simplejson

5.运行安装文件:setup.py install
Python 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
Python中特殊函数集锦
Jul 27 Python
django静态文件加载的方法
May 20 Python
python3+requests接口自动化session操作方法
Oct 13 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
python动态进度条的实现代码
Jul 03 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
python 等差数列末项计算方式
May 03 Python
Django模板获取field的verbose_name实例
May 19 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
Python连接mysql方法及常用参数
Sep 01 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
python实现文件名批量替换和内容替换
Mar 20 #Python
Python读写Redis数据库操作示例
Mar 18 #Python
python实现k均值算法示例(k均值聚类算法)
Mar 16 #Python
python实现保存网页到本地示例
Mar 16 #Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 #Python
Python使用代理抓取网站图片(多线程)
Mar 14 #Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 #Python
You might like
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python 逐行分割大txt文件的方法
2017/10/10 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
pandas针对excel处理的实现
2021/01/15 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
纺织工程专业个人求职信范文
2014/01/27 职场文书
小学中秋节活动方案
2014/02/06 职场文书
《雷雨》教学反思
2014/02/20 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书