2021年4月 7日 (水)

編集中★川の防災情報リニューアルの件の続き 【5】各種 ( メモ

メモです

経過

3/23 川の防災情報がリニューアル、携帯版はサービス終了。その日に気づく。

調査開始

 川の防災情報は動的ページ。

 Javascriptでデータを取るか、ヘッドレスブラウザだろうと辺りを付ける。
 Javascriptでデータを引くのは、先方がそういう風にしてくれていないとダメっぽい。(クロスドメイン制約)
 ライブラリを解析しようとするも断念。
 一方、ヘッドレスブラウザは、共有サーバーでは無理っぽい。(root権限)

 ヘッドレスブラウザ案は、Python + Selenium + webdriver が割とググると出て来る。
 pythonやったことないし、とりあえず途中までやってみよう。
 共有サーバーのPythonは2.x。
 python3が必要らしいので色々ググって入れる
 pipで入れようとしたらpipがエラーになる
 python2.xだとダメっぽい
 結局、ファイルをD/Lしてpython3を入れる、そしたらpipも勝手に入った。
 requestsやBeautifulSoupで試したら、スクレイピングは出来た。

 

 VPSサーバーをレンタルする(3/28)  512MB 1core

 requestsやBeautifulSoupと、chromeとseleniumを入れる
 なんとかスクレイピングできた。(3/29)
 ただし、パフォーマンスが遅い。
 多重実行してみたら全然ダメ。
 その間、C2A0問題にてこずるが結局諦めた。
 また、seleniumの処理待ちを入れるのにてこずる。
 (ググって出て来るメジャーな方法がダメ。たぶん環境によるのか。マイナーな方法でクリア)

 

 ターゲットを「水分水質データベース」に変更 4/3

  共有サーバーのpython3でやったら、それなりにできた。
  cgiにしたらだめ。( cgiのコマンドパスが固定されていた )
  VPSならどうにでもなるだろうが、維持費がかかるので共有サーバーで頑張る。

  pythonを断念してperlに変更。
  python2でもなんとかできるのかも知れないが、そもそもpython初めてなのと、perlなら現行のcgiのロジックがそのまま使える。
  perlにもスクレイピングのライブラリがあるみたいだったが、ぱっと見で理解できなかっので、indexとrindexを駆使して対応。

  なんとか出来た。

 

 httpsが大変だった

  この際、httpsにすることにした。
  以前も試したことがあるが、常時SSLにすると、cgiの呼び出し方もhttpsにしないとエラーになる。
  他で使ってくれている人に悪いのでその時は断念。
  今回はどのみち書き換えが必要なのでGO

  方々直す必要があって辛かった。

  AdSenseやアナリティクスがhttpになっている大量のファイルの修正が必要。

  これは気づかなかった。戻そうかとも思ったが、対策前進。

  さくらエディタのgrep置換を使って修正。

  普段からソース管理がダメダメなので、なんとか出来たが、いくつか変なのもあるかも知れない。

  cgiのリリースは4/4 その後バグ修正と周辺ページの対応実施。

 

 

その後の事

2021.4.11 レンタルVPSのお試し期間終了。迷ったけど、解約。

| | コメント (0)

2021年4月 5日 (月)

川の防災情報リニューアルの件の続き 【4】希望の光 ( メモ )

もはや打つ手はないと思われたのですが、もう一つの方法があることに気づきました。

残念ながら、現行より情報のカバー範囲は落ちるのですが、レスポンス的な問題はなさそうな方法です。

それは、「川の防災情報」ではなく、「水分水質データベース」からデータを取得するというものです。

「水分水質データベース」には、『リアルタイム水位』『リアルタイム雨量』『リアルタイムダム諸量』があるのです。

水分水質データベース(調布橋)

しかし、残念ながら川の防災情報のすべての観測所が網羅されている訳ではありません。例えば、『四万ダム』や『万年橋』は載っていません。

また、雨量については『10分雨量』のみで、『累加雨量』がありません。

水分水質データベース(御岳・雨量)

しかし、ないよりは全然いいです。

 

ちなみに、水分水質データベースは、2つのページで構成されています。

メインのページの中にiframeがあって、その中に動的に都度生成されるhtmlファイルが表示されていて、そこに数値が記述されています。

Photo_20210405223701

したがって、メインのページを読み取って、その中のファイル名を取得して、そのファイル名で再度読み込む必要がありますが、いずれも静的なファイルなので、WebDriverやヘッドレスブラウザは必要ありません。

そうなると、VPSではなく、共有サーバーのレンタルで片が付くので経済的にも助かります。

その後も、いろいろと難航したものの、漸くリリースの運びとなりました。

今まで、「まい水位計」やcgiをホームページに埋め込んでご利用いただいていた方は、URLの変更が必要です。

利用方法のページなどはおいおい修正しますが、基本的には、水位計サイトのURLを変えるだけです。

★お願い★

川の防災情報もそうですが、水分水質データベースも、使用上の注意で『通常のブラウザからのアクセスを前提としており、ツールからのアクセスは控えて欲しい』という様なことが記されています。

cgiをサイトに組み込んで使用される際は、地味にお願いいたします。( 多数の水位を同時に表示させないなど )

よろしくお願いいたします。

それと、今回を機に、サイトをhttpsにしました。httpのままでも、リダイレクトされるようにしてあります。

しかし、今回、えらい時間かかって凄い疲れましたです。

 

| | コメント (0)

2021年4月 4日 (日)

川の防災情報リニューアルの件の続き 【3】絶望 ( メモ )

その後の進捗です。

3月の終わりには、何とかデータを取るところまでたどり着いたので、まだまだ先は長いにしても、トンネルの先に光が見えたかに思えたのですが、その後かなり絶望的な状況になりました。

今回の方法は、パフォーマンスが悪いだろうと予想していましたが、相当絶望的に遅いのです。

特にダム。最初のページに出ているのは貯水位と貯水量なので、放流量を表示するには画面内のボタンを押さないといけません。

エンターしてから結果が出るまで10秒余りかかります。

そして、同時実行させると、パフォーマンスはさらに劣化。4多重で数分。悪くすれば途中でエラーです。

ページ読み込みが完了まで待ち合わせをさせることでエラーは回避できましたが、エラーにならないだけで、レスポンスが良くなるわけではありません。

テストしている感触だと、複数実行させても、処理のどこかの部分は、シリアルに動いている雰囲気。

内部的にブラウザが上がることになるので、遅いのは致し方ないのか。

しかも、今回レンタルしたサーバーは一番安い、メモリ512MBのプラン。

1GBくらいまでなら、金額的に出せなくもないけど、1GBにしたところで、10個の水位計の同時表示でサクサク動くとは到底思えません。

チューニングの余地はあるでしょうが、焼け石に水と言っていいでしょう。

劇的に改善しない限りは使えません。

かなり絶望的な状況となってしまいました。

そして、絶望の淵の底から空を見上げたら、希望の星が見えたのでした。(つづく)

 

 

 

 

| | コメント (0)

2021年3月31日 (水)

川の防災情報リニューアルの件の続き 【2】 ( メモ )

その後の状況です。

新しい川の防災情報からデータを取るのは、かなりしんどそうなのですが、これでもSEの端くれ。ちょっとこのままにしてしまうのも悔しいので頑張っております。

現在レンタルしている共有サーバーでは管理者権限がないからどうも無理っぽいので、新たにVPSをレンタルしました。

環境構築して、いろいろインストールして、手順をググりながらやるんですが、何やるにしても、いちいち、どこか違っていて引っかかります。

そうなるとつぶすのに、あっちググりこっちググりです。

会社員の頃は、月曜に出社すると、「週末、家のパソコン3台、再インストールしましたよ~」みたいな感じで、いい汗かきました的な人とか時々いましたけど、私は苦手なうえに嫌いなのです。インストールは労働以外の何物でもありません。

環境的には、
・centOs7
・Python3
・BeautifulSoup
・selenium

それで、漸く、環境が整ったら、そこから先もめんどい。

前の携帯版サイトは簡単だったのですが、今度のはかなり手ごわいです。

Photo_20210330235101

2_20210330235201

それでもどうにかこうにか、データがとれるところまで来ました。(上図)

ここから先もそこそこ長い。

それで、やはり結構遅いです。

内部的にブラウザーを起動しているので仕方ないのですが、今までよりかなり遅いです。

あと、一応、一般向けに公開しているAPIがないか問い合わせました。

トップ画面にツールでアクセスしてくれるなと書いてあるので、その本気度も確認したかったというのもあのます。

そういう事もあって、最終的に公開できるかどうかはグレーですが、とりあえず、進めております。

 

| | コメント (0)

2021年3月26日 (金)

川の防災情報リニューアルの件の続き( メモ )

いろいろ試したり調べたりしておりまして、覚え書きとして途中状況を残しておきます。

 

1. 状況

 1) 新しい川の防災情報は、動的に生成されるページとなっている

  htmlのsourceは以下の様になっている。

<body>
<noscript>
<strong>We're sorry but web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id=app>
</div>
<script src=/kawabou/js/chunk-vendors.46e37b4f.js></script>
<script src=/kawabou/js/app.a77cee51.js></script>
</body>

 

  参考 調布橋のページ

  https://www.river.go.jp/kawabou/mb/tm?zm=15&clat=35.7819444&clon=139.27907756384582&fld=0&ofcCd=21320&itmkndCd=4&obsCd=4

 

 2) 調査状況

 こちらのサーバーに、htmlをupしたり、jsファイルをアップしたりして、中身も少し変えてテストしているが、コードの分量も多いし、上記の2ファイルの中から、さらにへ別のファイルを読んでいるので、解析が大変。

 なんとなくクロスドメイン制約でアウトな予感がかなりする。

 このあたりは素人でよくわからない。

 

2. 対応方法として考えられる案

 1) APIを見つけ出してデータを取得する。

  a) クロスドメイン制約など、セキュリティ的な面で取得できない可能性がある。

  b) 外からでも取得できる道筋が儲けられている可能性もあるが、意図的に見せないような手当がされていたら、取得不能。
          あるいは、意図的にみせる手当がなされていないとアウトと言えるかもしれない。

  c) この辺苦手。調べても徒労に終わる可能性あり。

  d) 実現可能なら、この案の方が以下の案よりは美しい。

 

 2) 生成されたページから値を読み取る

  a) この方法なら、取得可能ではないかと思われる。

  b) Pythonのver3とか、Selenium、BeautifulSoupなどのライブラリが必要っぽい。

  c) 現在使用しているサーバーは、Python2になっている。

  d) 環境の準備が現在の『レンタルサーバー』の契約プランで可能か不明。

  e) 少し余分にお金を出してVPSのプランにすれば、環境的な問題はクリアされると思われるがそこまでやるか?

          ・費用面 ・VPSは世話をするのが面倒そう

  f) 構築できたとして、ヘッドレスブラウザを経由するため、レスポンスが得られない可能性もある。

 

3. その他の事と、今後について

 1) 公共のサーバーをスクレイピングしてよいものかという躊躇

       a) 公共のサーバーをスクレイピングしてよいものかという躊躇は残る。
    利用規約には、止めてねとやんわりと書いてあるが、強くは書いてない。
    やんわり。
      https://www.river.go.jp/kawabou/kwb_apend/html/caution.html


     b) こちら側のサイトのアクセス数を考えると、実質的な迷惑にはならない。

     c) 加えて、負荷をかけないような設計上の配慮も出来る。

  2) 当面、2の案を試すことにする。

 

という事で、復旧できないかもしれないし、できるにしても大分時間が掛りそう。

 

 

| | コメント (0)

2021年3月23日 (火)

【悲報】「川の防災情報」携帯版のサービス終了に伴い、水位計cgiもまい水位計も使えなくなりました。

今日、なにげなく水位を確認しようと「まい水位計」を開いたら、なぜか、表示が全て"-"ハイフンになっていました。

何事だろうとハイフンをクリックして見ると、、、なんと!

Photo_20210323211901

携帯版「川の防災情報」がなくなっているではありませんか!!

「まい水位計」も、海部郡山川町のサイトに表示している各地の水位も、携帯版「川の防災情報」からデータを取っていたのです。

何年か前にもリニューアルされて、表示できなくなったことがあったのですが、それほど激しい違いではなかったので、なんとか改修したのですが、今回はなんと「サービス終了」

見たい人は、PC版かスマホ版を見てね!

という事なのです。リンクは以下です。

国土交通省 川の防災情報

2_20210323213401

で、HTMLのソースを見てみると、

3

あちゃー、動的にHTMLを生成しているやつです。

JavaScriptとか、ぜんぜん素人なんですよね。

ちょっとだけ、頑張って、無理そうだったら、諦めまする。

 

それと、前から、「ご利用上の注意事項」の所に、

"当ホームページは一般の方々が通常のブラウザで閲覧されることを前提に情報を掲載しています。サーバに過度な負担をかけるツール等による定期的なデータ収集は、お控えいただきますようお願いいたします。"

という記述がありまして、ほんの少し気にはなっておりました。

「まい水位計」については、通常のブラウザでの閲覧に違いないですが、データを取っているcgiは、「ツール等」と言えなくもない。

とはいえ、見たい時だけ動く訳ですから、「定期的なデータ収集」には当たらないだろう。不定期です。

それに、海部郡山川町サイトは、年間5,238円の安物レンタルサーバー上で動いていますから、仮にアクセスが集中しても、こちらのサーバーがネックになって、川の防災情報に「過度な負担をかける」とは言えないだろう。

あ、そもそも、海部郡山川町には、心配するほどのアクセスがないんでした・・・(泣)。

 

 

 

| | コメント (0)

2020年7月29日 (水)

【朗報】やまかわスタンプ『父から娘へ』がTシャツに NOW ON SALE !!!

またまた朗報です!!

女子高生の娘を持つ多くの親御さんが涙する、スーパー大ヒットロングランLINEスタンプ『父から娘へ』がとうとう、Tシャツになりました。

今回は世界に先駆けて日本でリリースです。

川で、山で、海で、街で、どんなシーンでもあなたを引き立てるかも知れない。

お求めは⇒ ©やまかわTシャツ『父から娘へ』

( ※この記事には一部、少しの誇張を含んでいます。) 

P_20200728_104449_2048

P_20200728_104556_2048

P_20200728_104702_2048a

 

P_20200729_130513_2048

 

  LINEもよろしくお願いします⇒ LINEスタンプ『父から娘へ』

| | コメント (0)

2020年7月13日 (月)

海部郡山川町Tシャツ第2弾 NOW ON SALE!!!

またまた朗報です!!

全米で2億枚を販売したかも知れない、国内でも大好評かも知れない海部郡山川町のオリジナルロゴTシャツの第2弾がいよいよ日本上陸です。

欧州ではなんと20億万枚を既に販売しているかも知れない。

世界7か国に全力の生産体制を確保しているかも知れない。

川で、山で、海で、街で、どんなシーンでもあなたを引き立てるかも知れない。

お求めは⇒ 海部郡山川町オリジナルTシャツ第2弾

( ※この記事には一部、少しの誇張を含んでいます。) 

P_20200710_072139_2048

P_20200710_072026_2048

P_20200710_072348_2048

P_20200710_072711_2048

 

| | コメント (0)

2020年4月27日 (月)

海部郡山川町Tシャツ、いよいよ日本上陸!!

朗報です!!

海部郡山川町のオリジナルロゴTシャツがいよいよ日本上陸です!!

川で、山で、海で、街で、どんなシーンでもあなたを引き立てるw。

もしかしたら全米での販売枚数既に2億枚を突破!(嘘っ!!)

 

P_20200419_155229little

P_20200419_155157little

P_20200419_155102little

P_20200426_145023little

P_20200426_144947little

P_20200426_144933little

もしよかったら、お買い求めくださいますと、とっても嬉しいですっ!

 

 

| | コメント (0)

2017年5月14日 (日)

まい水位計 ~ chromeでの使用が復旧しました ~

御愛顧いただいております「まい水位計」

先週気づいたのですが、chromeだと、うまく動かなくなっていました。

( android標準ブラウザやSAFARI、firefoxは問題なし。)

登録済の水位計を表示するのは問題ないのですが、新たな登録をしようとすると、ボタンがうまく反応せず、違うボタンが反応するようになっていました。

始めは使えていたので、jQuerymobileのライブラリが何か変ったか、chromeがなにか変わったのかも知れません。


今回、使用するjQuerymobileのバージョンを変更しまして、chromeでも使用できるようになりました。

こんごとも、「まい水位計」をよろしくお願いします。

Screenshot_20170311220717

| | コメント (0) | トラックバック (0)

より以前の記事一覧