发布于 2016-01-09 00:25:27 | 159 次阅读 | 评论: 0 | 来源: 网友投递
这里有新鲜出炉的Python入门,程序狗速度看过来!
Python编程语言
Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
最近学习python 感觉这门脚本语言十分灵活 而且功能十分强大 尤其是他re库用于正则匹配十分强大,写了个例子解析中国天气网
使用方法: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