Python 分析天气,告诉你中秋应该去哪里
本文投稿自:蘿卜大雜燴
中秋佳節將近,不知道各位小伙伴兒有沒有想好去哪里玩呢。不過說實在的,每到節假日,到處都是人山人海,那句“我動也不能動”,還不時的出現在我的耳畔呢。
但是又說回來,假期出游,除了人的因素外,天氣的因素是不是也要考慮下呢,今天,我們就帶大家來看看,中秋小長假,哪些地方適宜出游。
獲取數據
數據的獲取,就從中國天氣網站上直接抓取,網絡上的一些 API,有的信息不是很全,只能獲取最近3天的數據,有的又需要付費,還不如自己抓來的痛快。
http://www.weather.com.cn/weather15d/10124020102A.shtml
網站也沒有做什么限制,我們抓數據的時候,只需要控制好訪問頻率,不要影響人家的正常運行就可以。
同時還需要準備四個數據文件
省會城市列表,provincial_capital
全國城市 id 信息表,china-city-list.csv
著名景點名稱列表,attractions
全國景點 id 信息表,china-scenic-list.txt
抓取的過程不再詳細說明了,直接給出完整代碼
#?coding?=?utf-8 """ @author:?zhou @time:2019/9/5?14:36 @File:?main.py """import?requests from?bs4?import?BeautifulSoup import?time import?osdef?get_data(name,?city,?code):print("正在下載城市%s的數據"?%?city)url?=?'http://www.weather.com.cn/weather15d/%s.shtml'?%?code[2:]res?=?requests.get(url).content.decode()content?=?BeautifulSoup(res,?"html.parser")weather_list?=?content.find('ul',?attrs={'class':?'t?clearfix'}).find_all('li')items?=?map(parse_item,?weather_list)save_to_csv(name,?city,?items)time.sleep(1)def?parse_item(item):time?=?item.find('span',?attrs={'class':?'time'}).textwea?=?item.find('span',?attrs={'class':?'wea'}).texttem?=?item.find('span',?attrs={'class':?'tem'}).textwind?=?item.find('span',?attrs={'class':?'wind'}).textwind_level?=?item.find('span',?attrs={'class':?'wind1'}).textresult?=?{"time":?time,"wea":?wea,"tem":?tem,"wind":?wind,"wind_level":?wind_level}return?resultdef?save_to_csv(name,?city,?data):if?not?os.path.exists('%s_data.csv'?%?name):with?open('%s_data.csv'?%?name,?'a+',?encoding='utf-8')?as?f:f.write('city,time,wea,tem,wind,wind_level\n')for?d?in?data:try:row?=?'{},{},{},{},{},{}'.format(city,d['time'],d['wea'],d['tem'],d['wind'],d['wind_level'])f.write(row)f.write('\n')except:continueelse:with?open('%s_data.csv'?%?name,?'a+',?encoding='utf-8')?as?f:for?d?in?data:try:row?=?'{},{},{},{},{},{}'.format(city,d['time'],d['wea'],d['tem'],d['wind'],d['wind_level'])f.write(row)f.write('\n')except:continueif?__name__?==?'__main__':import?pandas?as?pdprovincial?=?pd.read_csv('provincial_capital')china_city_code?=?pd.read_csv('china-city-list.csv')china_scenic_code?=?pd.read_csv('china-scenic-list.txt',?sep='\t')china_scenic_code.columns?=?['ID',?'name',?'area',?'provincial']attraction?=?pd.read_csv('attractions')provincial_data?=?pd.DataFrame()attraction_data?=?pd.DataFrame()#?省會抓取for?i?in?provincial['city'].values.tolist():for?j?in?china_city_code['City_CN'].values.tolist():if?j?==?i:provincial_data?=?pd.concat([china_city_code[china_city_code['City_CN']?==?j],?provincial_data])for?city?in?provincial_data['City_CN'].values.tolist():city_id?=?provincial_data[provincial_data['City_CN']?==?city]['City_ID'].values.tolist()[0]get_data('weather',?city,?city_id)#?景點抓取for?a?in?attraction['attractions'].values.tolist():for?c?in?china_scenic_code['name'].values.tolist():if?c?==?a:attraction_data?=?pd.concat([china_scenic_code[china_scenic_code['name']?==?c],?attraction_data])for?attrac?in?attraction_data['name'].values.tolist():city_id?=?attraction_data[attraction_data['name']?==?attrac]['ID'].values.tolist()[0]get_data('attraction',?attrac,?city_id)省會天氣分析
我們首先來看看省會天氣,畢竟省會城市是每個省份的中心,也是旅游的重點城市。
降水和溫度
對于降水的概率,我采取的是如果預報是有雨,則設置降水概率為80,如果是預報是晴,則降水概率為20.
weather_dict?=?{"snow":?100,"rain":?80,"cloud":?50,"overcast":?60,"sun":?20 }在中秋節這一天,各個省會城市的降水和溫度
能夠看出,大部分城市在這一天都是天公不作美的,降水的概率都非常的大。而溫度的話,大概率降水的城市,溫度都不是很高,早晚出行,可能還會很涼哦。溫度最高的應該就是南昌了,還能達到30°C,一個艷陽高照的日子,是不是去看看革命圣地?
接下來我們再通過一個雙軸圖來更加直觀的查看下降水和溫度的情況
看來在進入9月之后,全國普遍的溫度都在慢慢回落了,溫度適宜出行,但是就是會伴隨著綿綿的細雨呀。
再來看下幾大城市在中秋前后一周的天氣情況
北京
北京的氣溫還是比較平穩的,沒有太大的波動,可能早晚一件薄外套就能hold的住,不過這幾天,應該都會是陰蒙蒙的,不會有太好的陽光。
上海
上海的降水概率要比北京大一些,不過溫度倒是相差不多。
杭州
杭州的平均溫度還是要高一些,降水的概率也較高,畢竟典型的東南沿海城市嘛,雨天的西湖,你期待不?
成都
成都基本天天下雨了,那還出門看大熊貓嘛,這是個問題啊!
著名景區天氣
下面我們再來看看一些著名景區的天氣情況,我大好河山,景區太多了,只能簡單列舉一些最著名的地方來看看了。
降水情況
在我選取的這些景區當中,大部分都是會有降水的,不過也會有陽光明媚的地方。
降水和溫度
我們再來看看各地的溫度情況
不知道為啥承德的溫度會那么低,感覺去避暑已經不太合適了,而長白山已經只有7°C了,慌不慌?
降水與溫度分布
降水
進入9月,東南沿海降水明顯增多,京津地區也是陰雨連綿,這是一場秋雨一場寒的節奏嗎!
溫度
東南半壁,溫度還是比較適宜的,現在的天氣下,不冷不熱,正是出游好溫度。
好了,今天的分析就到這里了,那么,你中秋節最終的選擇是哪里呢?
最后,公眾號后臺回復”中秋“,可以獲得完整源碼!
推薦閱讀:(點擊下方標題即可跳轉)
騷操作 !用 Python 偷偷抓取女朋友的行蹤
我在 GitHub 上看到了一個喪心病狂的開源項目!
騷操作 !用 Python 自動下載抖音美麗小姐姐
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Python 分析天气,告诉你中秋应该去哪里的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GitHub 3W 星,冲击热榜!超实用
- 下一篇: 骚操作!曾经爱过!用 Python 清理