麻布十番で働くデータ分析者のブログ

グロースハック、プログラミング、データ分析の色々を発信します

gem 'nokogiri'を使ってwebスクレイピングする<ruby>

明日プログラミングのことについて書きますと言いつつ3日ほど経ってしまった

 

仕事をする上で、検索予測の一覧を取得する必要があった。

せっかくrubyを書いているので、nokogiriというgemを使ってwebスクレイピングに初チャレンジ(nokogiriでは検索予測一覧を取得できないとは知らず)

 

何かの参考になればと、ここにコードと記録を残しておきます。

 

また、今回このブログにかなりお世話になったので、参考元ということでリンク貼っておきます。

morizyun.github.io

 

 

webスクレイピングとは

そもそもwebスクレイピングとは何かという話なのですが、

簡単にいうとHTMLを解析するというものです。

 

 

僕みたいに検索予測の一覧を取得するというよりも、ブログのタイトルや記事内容一覧を取得するのにとても役立ちます。

 

僕自身も存在は知っていたのですが、やったことはなかったので今回初チャレンジになりました。

 

実際のコード

今回は僕の大学のお知らせ一覧を取得してみます。

urlはこちら

http://www.tcu.ac.jp/topics/index.html

 

gemのnokogiriというのを使用します。

なので最初に

 

gem install nokogiri

 bundle install 

 

 でgemをインストールします。

 

実際のコードは以下です。

 

f:id:nimi0370376:20161216192134p:plain

 

上から順に見ていきます。

 

nokogiri

 

コメントはプログラミング言語からできる限り誰にでもわかるような簡単な言葉に置き換えてます。

 

doc.xpath('//div[@class="topics-entry mt10"]').each do |node|

 

の部分の()の中は読み込みたいページによって変わります。

今回は、HTML内の<div class="topics-entry mt10">の一覧の取得をしたかったので、以上のような記述になっています。

 

課題は山積

nokogiriはhtmlを読み込むことは可能なのですが、結局検索予測の一覧はhtml/css化されていないと読み込めません。

なので、結局仕事には生きていないんですw

 

また、上記のコードの日付の取得が上記urlだとうまくいかないみたいです。

もっと勉強が必要ですね

 

Githubも公開しているので、よろしければどうぞ

github.com

 

もっと勉強して、検索予測の一覧取得しなければ笑

多分gemとかの問題じゃない