編集中★川の防災情報リニューアルの件の続き 【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のお試し期間終了。迷ったけど、解約。

コメント