Created
April 18, 2013 09:52
-
-
Save selfboot/5411548 to your computer and use it in GitHub Desktop.
weather.py: 获取天气信息,默认显示南阳新乡天气,可以在脚本后面加参数指定特定地点的天气。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import requests | |
import sys | |
CITY_RECORD = { | |
# 直辖市 | |
"北京": "101010100", "上海": "101020100", | |
"天津": "101030100", "重庆": "101040100", | |
# 特别行政区 | |
"香港": "101320101", "澳门": "101330101", | |
# 黑龙江 | |
"哈尔滨": "101050101", "齐齐哈尔": "101050201", | |
"牡丹江": "101050301", "大庆": "101050901", | |
"伊春": "101050801", "双鸭山": "101051301", | |
"鹤岗": "101051201", "鸡西": "101051101", | |
"佳木斯": "101050401", "七台河": "101051002", | |
"黑河": "101050601", "绥化": "101050501", | |
"大兴安岭": "101050701", | |
# 吉林 | |
"长春": "101060101", "延吉": "101060301", | |
"吉林": "101060201", "白山": "101060901", | |
"白城": "101060601", "四平": "101060401", | |
"松原": "101060801", "辽源": "101060701", | |
"大安": "101060603", "通化": "101060501", | |
# 辽宁 | |
"沈阳": "101070101", "大连": "101070201", | |
"葫芦岛": "101071401", "盘锦": "101071301", | |
"本溪": "101070501", "抚顺": "101070401", | |
"铁岭": "101071101", "辽阳": "101071001", | |
"营口": "101070801", "阜新": "101070901", | |
"朝阳": "101071201", "锦州": "101070701", | |
"丹东": "101070601", "鞍山": "101070301", | |
# 内蒙古 | |
"呼和浩特": "101080101", "呼伦贝尔": "101081000", | |
"锡林浩特": "101080901", "包头": "101080201", | |
"赤峰": "101080601", "海拉尔": "101081001", | |
"乌海": "101080301", "鄂尔多斯": "101080701", | |
"通辽": "101080501", | |
# 河北 | |
"石家庄": "101090101", "唐山": "101090501", | |
"张家口": "101090301", "廊坊": "101090601", | |
"邢台": "101090901", "邯郸": "101091001", | |
"沧州": "101090701", "衡水": "101090801", | |
"承德": "101090402", "保定": "101090201", | |
"秦皇岛": "101091101", | |
# 河南 | |
"郑州": "101180101", "开封": "101180801", | |
"洛阳": "101180901", "平顶山": "101180501", | |
"焦作": "101181101", "鹤壁": "101181201", | |
"新乡": "101180301", "安阳": "101180201", | |
"濮阳": "101181301", "许昌": "101180401", | |
"漯河": "101181501", "三门峡": "101181701", | |
"南阳": "101180701", "商丘": "101181001", | |
"信阳": "101180601", "周口": "101181401", | |
"驻马店": "101181601", | |
# 山东 | |
"济南": "101120101", "青岛": "101120201", | |
"淄博": "101120301", "威海": "101121301", | |
"曲阜": "101120710", "临沂": "101120901", | |
"烟台": "101120501", "枣庄": "101121401", | |
"聊城": "101121701", "济宁": "101120701", | |
"菏泽": "101121001", "泰安": "101120801", | |
"日照": "101121501", "东营": "101121201", | |
"德州": "101120401", "滨州": "101121101", | |
"莱芜": "101121601", "潍坊": "101120601", | |
# 山西 | |
"太原": "101100101", "阳泉": "101100301", | |
"晋城": "101100601", "晋中": "101100401", | |
"临汾": "101100701", "运城": "101100801", | |
"长治": "101100501", "朔州": "101100901", | |
"忻州": "101101001", "大同": "101100201", | |
"吕梁": "101101101", | |
# 江苏 | |
"南京": "101190101", "苏州": "101190401", | |
"昆山": "101190404", "南通": "101190501", | |
"太仓": "101190408", "吴县": "101190406", | |
"徐州": "101190801", "宜兴": "101190203", | |
"镇江": "101190301", "淮安": "101190901", | |
"常熟": "101190402", "盐城": "101190701", | |
"泰州": "101191201", "无锡": "101190201", | |
"连云港": "101191001", "扬州": "101190601", | |
"常州": "101191101", "宿迁": "101191301", | |
# 安徽 | |
"合肥": "101220101", "巢湖": "101221601", | |
"蚌埠": "101220201", "安庆": "101220601", | |
"六安": "101221501", "滁州": "101221101", | |
"马鞍山": "101220501", "阜阳": "101220801", | |
"宣城": "101221401", "铜陵": "101221301", | |
"淮北": "101221201", "芜湖": "101220301", | |
"毫州": "101220901", "宿州": "101220701", | |
"淮南": "101220401", "池州": "101221701", | |
# 陕西 | |
"西安": "101110101", "韩城": "101110510", | |
"安康": "101110701", "汉中": "101110801", | |
"宝鸡": "101110901", "咸阳": "101110200", | |
"榆林": "101110401", "渭南": "101110501", | |
"商洛": "101110601", "铜川": "101111001", | |
"延安": "101110300", | |
# 宁夏 | |
"银川": "101170101", "固原": "101170401", | |
"中卫": "101170501", "石嘴山": "101170201", | |
"吴忠": "101170301", | |
# 甘肃 | |
"兰州": "101160101", "白银": "101161301", | |
"庆阳": "101160401", "酒泉": "101160801", | |
"天水": "101160901", "武威": "101160501", | |
"张掖": "101160701", "甘南": "101050204", | |
"临夏": "101161101", "平凉": "101160301", | |
"定西": "101160201", "金昌": "101160601", | |
# 青海 | |
"西宁": "101150101", "海北": "101150801", | |
"海西": "101150701", "黄南": "101150301", | |
"果洛": "101150501", "玉树": "101150601", | |
"海东": "101150201", "海南": "101150401", | |
# 湖北 | |
"武汉": "101200101", "宜昌": "101200901", | |
"黄冈": "101200501", "恩施": "101201001", | |
"荆州": "101200801", "神农架": "101201201", | |
"十堰": "101201101", "咸宁": "101200701", | |
"襄阳": "101200201", "孝感": "101200401", | |
"随州": "101201301", "黄石": "101200601", | |
"荆门": "101201401", "鄂州": "101200301", | |
# 湖南 | |
"长沙": "101250101", "邵阳": "101250901", | |
"常德": "101250601", "郴州": "101250501", | |
"吉首": "101251501", "株洲": "101250301", | |
"娄底": "101250801", "湘潭": "101250201", | |
"益阳": "101250701", "永州": "101251401", | |
"岳阳": "101251001", "衡阳": "101250401", | |
"怀化": "101251201", "韶山": "101250202", | |
"张家界": "101251101", | |
# 浙江 | |
"杭州": "101210101", "湖州": "101210201", | |
"金华": "101210901", "宁波": "101210401", | |
"丽水": "101210801", "绍兴": "101210501", | |
"衢州": "101211001", "嘉兴": "101210301", | |
"台州": "101210601", "舟山": "101211101", | |
"温州": "101210701", | |
# 江西 | |
"南昌": "101240101", "萍乡": "101240901", | |
"九江": "101240201", "上饶": "101240301", | |
"抚州": "101240401", "吉安": "101240601", | |
"鹰潭": "101241101", "宜春": "101240501", | |
"新余": "101241001", "景德镇": "101240801", | |
"赣州": "101240701", | |
# 福建 | |
"福州": "101230101", "厦门": "101230201", | |
"龙岩": "101230701", "南平": "101230901", | |
"宁德": "101230301", "莆田": "101230401", | |
"泉州": "101230501", "三明": "101230801", | |
"漳州": "101230601", | |
# 贵州 | |
"贵阳": "101260101", "安顺": "101260301", | |
"赤水": "101260208", "遵义": "101260201", | |
"铜仁": "101260601", "六盘水": "101260801", | |
"毕节": "101260701", "凯里": "101260501", | |
"都匀": "101260401", | |
# 四川 | |
"成都": "101270101", "泸州": "101271001", | |
"内江": "101271201", "凉山": "101271601", | |
"阿坝": "101271901", "巴中": "101270901", | |
"广元": "101272101", "乐山": "101271401", | |
"绵阳": "101270401", "德阳": "101272001", | |
"攀枝花": "101270201", "雅安": "101271701", | |
"宜宾": "101271101", "自贡": "101270301", | |
"甘孜州": "101271801", "达州": "101270601", | |
"资阳": "101271301", "广安": "101270801", | |
"遂宁": "101270701", "眉山": "101271501", | |
"南充": "101270501", | |
# 广东 | |
"广州": "101280101", "深圳": "101280601", | |
"潮州": "101281501", "韶关": "101280201", | |
"湛江": "101281001", "惠州": "101280301", | |
"清远": "101281301", "东莞": "101281601", | |
"江门": "101281101", "茂名": "101282001", | |
"肇庆": "101280901", "汕尾": "101282101", | |
"河源": "101281201", "揭阳": "101281901", | |
"梅州": "101280401", "中山": "101281701", | |
"德庆": "101280905", "阳江": "101281801", | |
"云浮": "101281401", "珠海": "101280701", | |
"汕头": "101280501", "佛山": "101280800", | |
# 广西 | |
"南宁": "101300101", "桂林": "101300501", | |
"阳朔": "101300510", "柳州": "101300301", | |
"梧州": "101300601", "玉林": "101300901", | |
"桂平": "101300802", "贺州": "101300701", | |
"钦州": "101301101", "贵港": "101300801", | |
"防城港": "101301401", "百色": "101301001", | |
"北海": "101301301", "河池": "101301201", | |
"来宾": "101300401", "崇左": "101300201", | |
# 云南 | |
"昆明": "101290101", "保山": "101290501", | |
"楚雄": "101290801", "德宏": "101291501", | |
"红河": "101290301", "临沧": "101291101", | |
"怒江": "101291201", "曲靖": "101290401", | |
"思茅": "101290901", "文山": "101290601", | |
"玉溪": "101290701", "昭通": "101291001", | |
"丽江": "101291401", "大理": "101290201", | |
# 海南 | |
"海口": "101310101", "三亚": "101310201", | |
"儋州": "101310205", "琼山": "101310102", | |
"通什": "101310222", "文昌": "101310212", | |
# 新疆 | |
"乌鲁木齐": "101130101", "阿勒泰": "101131401", | |
"阿克苏": "101130801", "昌吉": "101130401", | |
"哈密": "101131201", "和田": "101131301", | |
"喀什": "101130901", "克拉玛依": "101130201", | |
"石河子": "101130301", "塔城": "101131101", | |
"库尔勒": "101130601", "吐鲁番": "101130501", | |
"伊宁": "101131001", | |
# 西藏 | |
"拉萨": "101140101", "阿里": "101140701", | |
"昌都": "101140501", "那曲": "101140601", | |
"日喀则": "101140201", "山南": "101140301", | |
"林芝": "101140401", | |
# 台湾 | |
"台北": "101340102", "高雄": "101340201", | |
} | |
def get_weather(city_id): | |
base_url = "http://m.weather.com.cn/data/" | |
city_url = base_url + city_id + ".html" | |
try: | |
r = requests.get(city_url) | |
except: | |
print "network isn't avilable..." | |
return | |
weather_info = r.json() | |
date = weather_info["weatherinfo"]["date_y"][5:] | |
week = weather_info["weatherinfo"]["week"] | |
# fchh = weather_info["weatherinfo"]["fchh"] | |
city_name = weather_info["weatherinfo"]["city"] | |
today_temp = weather_info["weatherinfo"]["temp1"] | |
today_wea = weather_info["weatherinfo"]["weather1"] | |
tom_temp = weather_info["weatherinfo"]["temp2"] | |
tom_wea = weather_info["weatherinfo"]["weather2"] | |
after_temp = weather_info["weatherinfo"]["temp3"] | |
after_wea = weather_info["weatherinfo"]["weather3"] | |
print u"%s--今天是%s%s%s%s, 明天%s%s, 后天%s%s" % ( | |
city_name, date, | |
week, today_temp, | |
today_wea, tom_temp, | |
tom_wea, after_temp, | |
after_wea | |
) | |
if __name__ == "__main__": | |
get_weather("101180701") | |
get_weather("101180301") | |
if len(sys.argv) >= 2: | |
for city in sys.argv[1:]: | |
try: | |
get_weather(CITY_RECORD[city]) | |
except: | |
print "city not found..." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment