中秋節、あなたは相手がどこで良いプレー行きたくなかった小さな子供を持って知りません。しかし、確かに、すべての休日や人々の巨大な群衆があったが、フレーズは、それを随時私の耳には「私は、移動できませんでした」。
しかし、人的要因に加えて、休日の旅行、バック追加、天候要因がまだ今日それについて考えていない、我々は旅行に適した場所、中秋節の休日を、見るためにあなたを取りますよ。
データを取得します
データの取得は、データのみの最後の3日間を取得することができ、ネットワーク上のAPIのいくつかの、いくつかの情報は非常に広いではない、中国の気象のウェブサイトから直接それをつかむが、また、同様に自分で良い時間をつかむかもしれない、いくつかを支払う必要があります。
ウェブサイトは、私たちがデータをキャッチしたときに、唯一のあなたはそれの人々の通常の動作に影響を与えていない、アクセス頻度を制御するために必要な、任意の制限をしませんでした。
また、あなたは、4つのデータファイルを準備する必要があります
- リストの首都、provincial_capital
- ナショナルシティid情報テーブル、中国都市list.csv
- 有名な観光スポット、アトラクションの名前一覧
- 国立観光名所ID情報テーブル、中国風光明媚な-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 os
def 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'}).text
wea = item.find('span', attrs={'class': 'wea'}).text
tem = item.find('span', attrs={'class': 'tem'}).text
wind = item.find('span', attrs={'class': 'wind'}).text
wind_level = item.find('span', attrs={'class': 'wind1'}).text
result = {
"time": time,
"wea": wea,
"tem": tem,
"wind": wind,
"wind_level": wind_level
}
return result
def 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:
continue
else:
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:
continue
if __name__ == '__main__':
import pandas as pd
provincial = 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)
資本気象分析
、各県の首都の中心部である、すべての後、我々は最初、天候の首都を見て、市の焦点は、観光です。
降水量と気温
降水確率のために、私のテイクが、それは予測が晴れであれば、降水確率が20で、雨の予報がある場合は、降水確率が80セットです。
weather_dict = {
"snow": 100,
"rain": 80,
"cloud": 50,
"overcast": 60,
"sun": 20
}
降水量と温度で、この日の中秋節には、すべての主要都市
図から分かるように、この日の都市のほとんどは悪天候で、降水確率は非常に大きいです。次いで、温度を降水の都市高い確率、温度が遅かれ早かれ旅行、それもああ冷却することができる、非常に高いではありません。南昌は、最高温度があるべきであり、30°C、明るい晴れた日に到達することができ、革命の聖地を見ていないですか?
次は水温の低下二軸延伸より直感的なビューにケースを渡し、
これは、9月に入った後に思える国の一般的な温度は徐々に低下している、旅行に適した温度が、それは霧雨、それを伴っています。
いくつかの主要都市で、来週の天気の前でと中秋節の後に見てみましょう
北京
北京の温度は比較的安定している、多くの変動性がない、軽いジャケットが遅かれ早かれ、ライブ保持することができるかもしれないが、これらの日、それは非常に良い太陽の光を持っていない、曇り霧になるべきです。
上海
上海、北京よりも降水確率、実際にはほぼ同じ温度。
杭州
杭州以上の平均気温、高い降水確率、結局、南東まあにおける典型的な沿岸都市、雨西湖、あなたが期待していませんか?
成都
それが問題ああ、成都基本的には毎日雨が降った、そしてそれはまた、よくパンダを見に行ってきました!
有名リゾートの天気
ここでは、いくつかの有名な風光明媚な気象条件を見て、私は、美しい山や川、風光明媚なあまり、最も有名な場所のいくつかの単純なリストだと、それを見てください。
脱水
私はそれらを選択するこれらの風光明媚では、降水量のほとんどはなりますが、日当たりの良い場所があるでしょう。
例えば、黄山と八達嶺長城は万里の長城、晴れ登ると登ることが予想され、黄山は、良い選択です。
そして、美しい西湖九寨溝でというように、雨が降りますが、雨の中を散歩しますが、それはうまくそれの味かもしれません。
降水量と気温
私たちは、温度の周りの状況を見てみましょう
温度が承徳でとても低くなりますなぜ私にはわからない、夏はあまり適切であったと感じ、長白山はわずか7°Cを持っており、パニックはパニックにならないのですか?
降水量と温度分布
降水量
9月に、降水量の南東海岸には、大幅に増加し、北京と天津は雨が降っている、それはそれの冷たい秋の雨のリズムでした!
温度
南東半分壁の下では、温度が非常に適切であり、そして今天気は、暑くも風邪でもない、温度を旅行するのが良いです。
ここでさて、今日の分析、そしてあなたはそれがどこにある中秋節を選択し終わりますか?
送信元アドレス
https://github.com/zhouwei713/data_analysis/tree/master/weather