フタミノブログ

マーケティングから技術まで色々

rubyを使ってwebスクレイピングをする[改訂]

少し前に書いた「gem 'nokogiri'を使ってwebスクレイピングをする」という記事が間違っていた。

 

nimi0370376.hatenablog.com

 

 

実は前回書いた記事だと、ターミナルで実行した時にHTMLタグも同時に表示されてしまう上に投稿日時のデータがうまくスクレイピングできないということが発覚。

 

更に言えば、大学のページの文字コードが"UTF-8"でcharsetで指定しなければならなかったのに、何にもしなかったが故に文字化けするという事態

 

これは、リベンジしたいということでコードと日記を書きなおします。

今回はかなり綺麗なコードになりました。

 

前回の記事は失敗例として一応残しておこう笑

 

webスクレイピングの手順をおさらい

まず、webスクレイピングの過程を最初からねりなおす。

  1. URLを開く
  2. htmlを読み込む
  3. htmlの中で欲しいclassやidを指定し、出力

 

たったこれだけの過程

文字種別もよほど特殊なものが使われていなければする必要ないということを勉強したので、この順番のままに書いていきます。

 

コードを書き換える

f:id:nimi0370376:20161220002628p:plain

 

こんなに短くなった。

gist.github.com

本当にこれで動くのが半信半疑だけど、動かしてみる

 

f:id:nimi0370376:20161220003332p:plain

 

動いた!

コードの見た目もこっちの方が美しい。単純明快

 

ちなみに

p doc.css['.class名'].inner_text

 

となっています。これをcsvファイルなんかに出力すればいちいちコピペしなくても結果一覧を取得できます。

 

しかし、未だに検索予測の取得ができない。。。