# coding: utf-8
place_codeA = [48,46]
place_codeB = [404,392]
place_name = ["
穂高","三浦"]

import requests
from bs4 import BeautifulSoup #
ダウンロードしてなかったらpipでできるからやってね。
import csv

# URL
で年と月ごとの設定ができるので%sで指定した英数字を埋め込めるようにします。
base_url = "http://www.data.jma.go.jp/obd/stats/etrn/view/daily_a1.php?prec_no=%a&block_no=0%a&year=%a&month=%a&day=1&view=p1"

#
取ったデータをfloat型に変えるやつ。(データが取れなかったとき気象庁は"/"を埋め込んでいるから0に変える)
def str2float(str):
  try:
    return float(str)
  except:
    return False

if __name__ == "__main__":
  #
都市を網羅します
  for place in place_name:
    #
最終的にデータを集めるリスト (下に書いてある初期値は一行目。つまり、ヘッダー。)
    All_list = [['
年月日', '降水計(mm)', '1Hr(mm)','10Min(mm)','平均気温(℃)', '最高気温(℃)', '最低気温(℃)', '平均風速(m/s)', '最大風速(m/s)', '最大風向', '最大瞬間風速(m/s)', '最大瞬間風向','最多風向','日照時間(h)','降雪(cm)','最深積雪(cm)']]
    print(place)
    index = place_name.index(place)
    # for
文で2020~2021年までの2回、つまり2年間廻す。
    for year in range(2020,2022):
      print(year)
          #
その年の1~12月の12回、つまり毎月を網羅。
      for month in range(1,13):
        #2
つの都市コードと年と月を当てはめる。
        r = requests.get(base_url%(place_codeA[index], place_codeB[index], year, month))
        r.encoding = r.apparent_encoding
        #
対象である表をスクレイピング。
        soup = BeautifulSoup(r.text)
        # print(BeautifulSoup(r.text))
        #
上記のプリントも途中からおかしい place_codeは3桁でもblock_no %aの前に 0 を置くことで解決
        rows = soup.findAll('tr',class_='mtx') #
タグ指定してclass名を指定するみたい。
        # print(soup.findAll('tr',class_='mtx'))
        #
上記のプリントがおかしい?place_codeは3桁でもblock_no %aの前に 0 を置くことで解決 
                #
表の最初の1~3行目はカラム情報なのでスライスする。(indexだから初めは0だよ)
        #
【追記】2020/3/11 申し訳ございません。間違えてました
        rows = rows[3:]
                # 1
日〜最終日までの1行を網羅し、取得します。
        for row in rows:
          data = row.findAll('td')
        # print(row.findAll('td'))
        #
上記はprintエラーとなる
          #
1行の中には様々なデータがあるので全部取り出す。
          rowData = [] #
初期化
          rowData.append(str(year) + "/" + str(month) + "/" + str(data[0].string))
          rowData.append(str2float(data[1].string))
          rowData.append(str2float(data[2].string))
          rowData.append(str2float(data[3].string))
          rowData.append(str2float(data[4].string))
          rowData.append(str2float(data[5].string))
          rowData.append(str2float(data[6].string))
          rowData.append(str2float(data[7].string))
          rowData.append(str2float(data[8].string))
          rowData.append(data[9].string)
          rowData.append(str2float(data[10].string))
          rowData.append(data[11].string)
          rowData.append(data[12].string)
          rowData.append(str2float(data[13].string))
          rowData.append(str2float(data[14].string))
          rowData.append(str2float(data[15].string))
        
          #
次の行にデータを追加
          All_list.append(rowData)

    #
都市ごとにデータファイル新しく生成して書き出す。(csvファイル形式。名前は都市名)
    with open(place + '.csv', 'w') as file:
      writer = csv.writer(file, lineterminator='\n')
      writer.writerows(All_list)