« 川の防災情報リニューアルの件の続き 【4】希望の光 ( メモ ) | トップページ | 2021年すだちの木の状況(その1) »

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のお試し期間終了。迷ったけど、解約。

|

« 川の防災情報リニューアルの件の続き 【4】希望の光 ( メモ ) | トップページ | 2021年すだちの木の状況(その1) »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 川の防災情報リニューアルの件の続き 【4】希望の光 ( メモ ) | トップページ | 2021年すだちの木の状況(その1) »