源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-05-17 15:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python解析中国天气网的天气数据
使用方法:terminal中输入
[u]复制代码[/u] 代码如下:
python weather.py http://www.weather.com.cn/weather/101010100.shtml
北京6天的天气数据 json格式
[u]复制代码[/u] 代码如下:
#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)
[u]复制代码[/u] 代码如下:
    cd D:/simplejson
5.运行安装文件:setup.py install
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部