FSharpでWebスクレイピング

wikia.comの艦これのデータを取得してみました。昨日のソースコードだとCSVに形式にできましたが、カラムのずれがありました。wikia.comのHTMLでは日本語名と英語名を分けて書かずに改行を使って書いていたり、イギリス艦はカタカナ表記がないので、泥臭く調整する必要があります。

001

 

SQLite3に取り込んでみる。

CSVファイルが正しいかどうかはデータベースで取り込んでみるのが手っ取り早いのでsqlite3にインポートしてみます。

sqlite3のコンソールを初めて使ったのですが入門情報が豊富なので問題ありませんでした。sqlite3のzipを回答したらsqlite3.exeがあるので、powershellから適当なファイル名(kancolle.db)でデータベースのコンソールに入ります。あとはデフォルトの区切り文字が(|)なので、.separator , でカンマに変更して、つくったcsvファイルを流し込みます。

002
DBBrowser for SQLiteで確認できた!

まとめ

インターネットのHTMLファイルから、データを取得してCSVファイルを作成し、データベースに格納するところまでできました。wikiなどのデータは手入力も多いため規則性がない場合は泥臭いところをしなければいけない場合も多いです。

関数型言語を道具として使う

今回は、PythonやBashで出来ることをF#でやってみました。文法を勉強しているときは全く感じなかったのですが、実際に実用的なアプリを作ってみると、C#の.NETのコードをそのままぶち込めたりして、思った以上にUnityやC#で学んだ知識をそのまま使っていけるのが分かりました。逆に.NETのAPIで、F#のインタフェースを用意していないのに驚きました。

F# Interactiveを使う開発は、Bash/Sed/Awkなどでやる泥臭いテキスト作業やコンソールでの開発と同じスタイルで、C#やJavaと同等の開発スタイルを想像していたのでこれも大きな発見でした。

次回はせっかくなので、作ったCSVまたはSqliteのデータをPHPかJavaでインターネット上に公開しようと思います。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA