Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:python [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:python

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:python [2015/06/07 22:20]
kota [気象庁HPの各地のアメダス表形式のデータ(.html)から気圧情報を抜き出したい]
ja:python [2015/06/10 19:59] (現在)
kota [気象庁HPの各地のアメダス表形式のデータ(.html)から気圧情報を抜き出したい]
ライン 7: ライン 7:
   * http://​www.jma.go.jp/​jp/​amedas_h/​today-61286.html?​areaCode=000&​groupCode=44   * http://​www.jma.go.jp/​jp/​amedas_h/​today-61286.html?​areaCode=000&​groupCode=44
   * 先にwgetでとってきておいて、名前を 20150401.htmlとかに変えておく   * 先にwgetでとってきておいて、名前を 20150401.htmlとかに変えておく
 +  * 以下 GetPressure.py のコード
  
 <code python> <code python>
ライン 25: ライン 26:
 soup = BeautifulSoup( open(argvs[1]) ) # fileを開いてパーサー(beautifulsoapに渡す) soup = BeautifulSoup( open(argvs[1]) ) # fileを開いてパーサー(beautifulsoapに渡す)
 trs = soup.find('​table',​ { "​id"​ : "​tbl_list"​ }) # 気圧情報の記されている表(tbl_list)をとってくる trs = soup.find('​table',​ { "​id"​ : "​tbl_list"​ }) # 気圧情報の記されている表(tbl_list)をとってくる
-                                                # trsは<​tr>​ ... </​tr>​で囲まれた部分を1要素とする配列となる 
 pressure = [] # 各時間の気圧値を入れるための配列を準備 pressure = [] # 各時間の気圧値を入れるための配列を準備
  
-for tr in trs.findAll('​tr'​)[2:​]:​ # 配列の要素でloop。[2:​]は、0,​1番目の要素(表のheaderに当たる部分)をスキップするという意味+for tr in trs.findAll('​tr'​)[2:​]:​ # 配列の要素でloop。trs.findAll('​tr'​)はtrsを区切って<​tr>​ ... </​tr>​で囲まれた部分を 
 +                                 # 1要素とする配列にしている。 
 +                                 # ​[2:​]は、0,​1番目の要素(表のheaderに当たる部分)をスキップするという意味
     tds = tr.findAll('​td'​) # tdsは<​td ...> .... </​td>​で囲まれた部分を1要素とする配列となる     tds = tr.findAll('​td'​) # tdsは<​td ...> .... </​td>​で囲まれた部分を1要素とする配列となる
     pressure.append(tds[len(tds)-1].string) # tdsの最終要素(=気圧情報)を取ってくる     pressure.append(tds[len(tds)-1].string) # tdsの最終要素(=気圧情報)を取ってくる
ライン 39: ライン 41:
 f.close() f.close()
  
 +</​code>​
  
 +以下のようなscript GetPress.sh
 +<code bash>
 +#!/bin/bash
 +
 +wget --directory-prefix=/​home/​aaa/​..../​bbb '​http://​www.jma.go.jp/​jp/​amedas_h/​today-61286.html?​areaCode=000&​groupCode=44';​
 +mv /​home/​aaa/​..../​bbb/'​today-61286.html?​areaCode=000&​groupCode=44'​ /​home/​aaa/​..../​bbb/​`date -d '1 days ago' +%Y%m%d`.html;​
 +python /​home/​aaa/​..../​bbb/​GetPressure.py /​home/​aaa/​..../​bbb/​`date -d '1 days ago' +%Y%m%d`.html;​
 </​code>​ </​code>​
 +
 +を書いて、cron で例えば
 +
 +''​50 0 * * * /​home/​aaa/​..../​bbb/​GetPress.sh >& /​dev/​null''​
 +
 +のようにして毎日0:​50に実行するようにしておけば良い。
 +
 +
 +----
 +
 +===== shell command を実行したい =====
 +subprocessを使う。
 +<code python>
 +import subprocess
 +
 +subprocess.call(["​ls","​-l"​]) # スペース区切りで区切った文字列のlistを渡す
 +### または
 +# cmd = "ls -l"
 +# subprocess.call(cmd.strip().split("​ "​)) ​
 +### でも同じ
 +</​code>​
 +
 +
ja/python.1433715621.txt.gz · 最終更新: 2015/06/07 22:20 by kota