Created
April 18, 2013 09:52
-
-
Save selfboot/5411548 to your computer and use it in GitHub Desktop.
weather.py: 获取天气信息,默认显示南阳新乡天气,可以在脚本后面加参数指定特定地点的天气。
This file contains hidden or 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