rubyを使ってwebスクレイピングをする[改訂]
少し前に書いた「gem 'nokogiri'を使ってwebスクレイピングをする」という記事が間違っていた。
実は前回書いた記事だと、ターミナルで実行した時にHTMLタグも同時に表示されてしまう上に投稿日時のデータがうまくスクレイピングできないということが発覚。
更に言えば、大学のページの文字コードが"UTF-8"でcharsetで指定しなければならなかったのに、何にもしなかったが故に文字化けするという事態
これは、リベンジしたいということでコードと日記を書きなおします。
今回はかなり綺麗なコードになりました。
前回の記事は失敗例として一応残しておこう笑
webスクレイピングの手順をおさらい
まず、webスクレイピングの過程を最初からねりなおす。
- URLを開く
- htmlを読み込む
- htmlの中で欲しいclassやidを指定し、出力
たったこれだけの過程
文字種別もよほど特殊なものが使われていなければする必要ないということを勉強したので、この順番のままに書いていきます。
コードを書き換える
こんなに短くなった。
本当にこれで動くのが半信半疑だけど、動かしてみる
動いた!
コードの見た目もこっちの方が美しい。単純明快
ちなみに
p doc.css['.class名'].inner_text
となっています。これをcsvファイルなんかに出力すればいちいちコピペしなくても結果一覧を取得できます。
しかし、未だに検索予測の取得ができない。。。