●
Python = 20/365
●
天气还是很热,秋老虎很难对付。今日极简5行代码爬个实时天气,给炎炎的秋日送来一点儿清凉……干货满满!
日更不停,你看行不行?
我带着你,你带着Python Flag,共勉!
No.1 Python实时天气根据所获得的IP地址,判断当前城市,根据当前城市输出当前天气。
第一部分:获取本地IP地址,确定城市(参考Python=17/365)#获取本地IP地址import sockethostname = socket.gethostname()ip = socket.gethostbyname(hostname)print(ip)#确定城市import geoip2.databasereader = geoip2.database.Reader('/Users/daisy/Desktop/GeoLite2-City_20200804/GeoLite2-City.mmdb')print("您的IP的地理位置是:")response = reader.city(ip)print("城市:{}".format(response.city.names["zh-CN"]))y = response.city.names["en"]
第二部分:获取当前日期(参考Python=18/365)
#获取当前日期import datetimetoday = datetime.date.today()print(today)
第三部分:
链接天气API,爬取天气
#链接天气API,爬取天气import requestsa = 'http://api.openweathermap.org/data/2.5/weather?q={},,CN&appid=免费注册秘钥'.format(y)r = requests.get(a)r.encoding = 'utf-8'c_temp = int(r.json()['main']['temp'])/10print(r.json()['name'],"当前气温是:", c_temp,"℃")
No.2 Python天气APIAPI(Application Programming Interface,应用程序接口)。本文中使用的是https://openweathermap.org/提供的免费API接口,注册即可获得一个秘钥KEY,通过这个KEY就可以实时访问该网站信息,爬取城市天气。
a = 'http://api.openweathermap.org/data/2.5/weather?q={城市},省,国家&appid=秘钥'.format(y)r = requests.get(a)
本网站提供的API标准格式如下:
{"coord":{"lon":121.6,"lat":38.91},"weather":[{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03d"}],"base":"stations","main":{"temp":303.15,"feels_like":305.42,"temp_min":303.15,"temp_max":303.15,"pressure":1001,"humidity":70},"visibility":8000,"wind":{"speed":5,"deg":120},"clouds":{"all":40},"dt":1597035067,"sys":{"type":1,"id":9679,"country":"CN","sunrise":1597006957,"sunset":1597056925},"timezone":28800,"id":1814087,"name":"Dalian","cod":200}
No.3 Python的request库request库是一常用的http请求库,可以方便地发送http请求,以及方便地处理响应结果。
get/post 参数
弄懂原理,事半功倍!
Python365专辑