Sivo 悉见

1、Python爬虫获取中国天气网某个城市的实时气温

匿名 · 更新于 2018/2/27

import requests,re,time,json
#城市ID
areaid = '101030100'
#获取毫秒
t = time.time()
millisecond = int(round(t * 1000))
#设置headers
headers = {'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
               'Accept-Encoding':'gzip, deflate',
               'Accept-Language':'zh-Hans-CN, zh-Hans; q=0.5',
               'Connection':'Keep-Alive',
               'Host':'d1.weather.com.cn',
               'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
               'Referer':'http://www.weather.com.cn/weather1dn/'+areaid+'.shtml'
           }
res = requests.get('http://d1.weather.com.cn/sk_2d/'+areaid+'.html?_='+str(millisecond),params=None, headers=headers)
res.raise_for_status()
content = res.text
tqRegex = re.compile(r'\{[^\}]*\}')
jsonstr = tqRegex.search(content)
# print(jsonstr.group())
dict_json = json.loads(jsonstr.group())
# print(dict_json)
print('当前城市【'+dict_json['cityname']+'】的实时气温为'+dict_json['temp']+'℃')
城市对应ID列表
 
{
	"北京": {
	"area": {
		"type": "city",
		"name": "北京",
		"areaid": "101010100"
	}
},
"上海": {

	"area": {
		"type": "city",
		"name": "上海",
		"areaid": "101020100"
	}
},
"天津": {

	"area": {
		"type": "city",
		"name": "天津",
		"areaid": "101030100"
	}
},
"重庆": {

	"area": {
		"type": "city",
		"name": "重庆",
		"areaid": "101040100"
	}
},
"黑龙江": {

	"area": {
		"type": "city",
		"name": "黑龙江",
		"areaid": "101050101"
	}
},
"吉林": {

	"area": {
		"type": "city",
		"name": "吉林",
		"areaid": "101060101"
	}
},
"辽宁": {

	"area": {
		"type": "city",
		"name": "辽宁",
		"areaid": "101070101"
	}
},
"内蒙古": {

	"area": {
		"type": "city",
		"name": "内蒙古",
		"areaid": "101080101"
	}
},
"河北": {

	"area": {
		"type": "city",
		"name": "河北",
		"areaid": "101090101"
	}
},
"山西": {

	"area": {
		"type": "city",
		"name": "山西",
		"areaid": "101100101"
	}
},
"陕西": {

	"area": {
		"type": "city",
		"name": "陕西",
		"areaid": "101110101"
	}
},
"山东": {

	"area": {
		"type": "city",
		"name": "山东",
		"areaid": "101120101"
	}
},
"新疆": {

	"area": {
		"type": "city",
		"name": "新疆",
		"areaid": "101130101"
	}
},
"西藏": {

	"area": {
		"type": "city",
		"name": "西藏",
		"areaid": "101140101"
	}
},
"青海": {

	"area": {
		"type": "city",
		"name": "青海",
		"areaid": "101150101"
	}
},
"甘肃": {

	"area": {
		"type": "city",
		"name": "甘肃",
		"areaid": "101160101"
	}
},
"宁夏": {

	"area": {
		"type": "city",
		"name": "宁夏",
		"areaid": "101170101"
	}
},
"河南": {

	"area": {
		"type": "city",
		"name": "河南",
		"areaid": "101180101"
	}
},
"江苏": {

	"area": {
		"type": "city",
		"name": "江苏",
		"areaid": "101190101"
	}
},
"湖北": {

	"area": {
		"type": "city",
		"name": "湖北",
		"areaid": "101200101"
	}
},
"浙江": {

	"area": {
		"type": "city",
		"name": "浙江",
		"areaid": "101210101"
	}
},
"安徽": {

	"area": {
		"type": "city",
		"name": "安徽",
		"areaid": "101220101"
	}
},
"福建": {

	"area": {
		"type": "city",
		"name": "福建",
		"areaid": "101230101"
	}
},
"江西": {

	"area": {
		"type": "city",
		"name": "江西",
		"areaid": "101240101"
	}
},
"湖南": {

	"area": {
		"type": "city",
		"name": "湖南",
		"areaid": "101250101"
	}
},
"贵州": {

	"area": {
		"type": "city",
		"name": "贵州",
		"areaid": "101260101"
	}
},
"四川": {

	"area": {
		"type": "city",
		"name": "四川",
		"areaid": "101270101"
	}
},
"广东": {

	"area": {
		"type": "city",
		"name": "广东",
		"areaid": "101280101"
	}
},
"云南": {

	"area": {
		"type": "city",
		"name": "云南",
		"areaid": "101290101"
	}
},
"广西": {

	"area": {
		"type": "city",
		"name": "广西",
		"areaid": "101300101"
	}
},
"海南": {

	"area": {
		"type": "city",
		"name": "海南",
		"areaid": "101310101"
	}
},
"香港": {

	"area": {
		"type": "city",
		"name": "香港",
		"areaid": "101320101"
	}
},
"澳门": {
	"area": {
		"type": "city",
		"name": "澳门",
		"areaid": "101330101"
	}
},
"台湾": {

	"area": {
		"type": "city",
		"name": "台湾",
		"areaid": "101340101"
	}
}

}