手机
当前位置:查字典教程网 >脚本专栏 >python >python解析中国天气网的天气数据
python解析中国天气网的天气数据
摘要:使用方法:terminal中输入复制代码代码如下:pythonweather.pyhttp://www.weather.com.cn/wea...

使用方法: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>(?:(?!<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解析中国天气网的天气数据】相关文章:

python 中文字符串的处理实现代码

python去掉字符串中重复字符的方法

python解决字典中的值是列表问题的方法

python每次处理固定个数的字符的方法总结

python生成器的使用方法

python 获取本机ip地址的两个方法

python函数返回多个值的示例方法

Python中针对函数处理的特殊方法

python中查找excel某一列的重复数据 剔除之后打印

python调用shell的方法

精品推荐
分类导航