Nokogiriのchildrenメソッドでpタグの1行を取得する方法

正規表現で行末まで取得ができない場合は、Nokogiriのchildrenメソッドで該当行を探す

こういうNokogiriのElementが存在する。pタグで囲んでテキストの文章を書きながら、<br>で改行をいれていく普通の文章。

取得したい文章は以下の駅名一覧

正規表現で「出発駅」から行末まで取ってくればいいだろうと考えるが、

全部でちゃった(ノω・)

どうもdoc.css("p").first.textとtextメソッドを使うと、HTML中の改行(<br>ではなく、キーボードから打ち込んだ改行)を無視して全ての文章を繋げて一つのtextとするみたい。

なので、おとなしくchildrenメソッドでpの子要素それぞれを見ながら、目的の行を発見したら任意の処理をしてbreakという方法で乗り越えました。

RubyのActiveRecord単体使用でDB(MySQL)のデータ読込み・追加・更新・削除する方法

Ruby on Railsに組み込まれているモデル操作用(DB操作用)のライブラリといえばActiveRecordですが、これをRailsを使わずにRubyとActiveRecord単体の組み合わせで使ってみたいと思います。

phpMyAdminでダミーのデータベースを作成する。

早速ダミーのデータベースとテーブル作成でつまづいた。よく考えると、チュートリアルや本の写経でテーブル作成したことはあったが、自分で一から作るのは初めてでした。

なので、テーブル作成の時に以下のような初歩的っぽいエラーがたくさん出ました(T_T)

  • エラー#1063:「id」にauto incrementをつけた状態では、型をINT系にしなければいけない。(最初VARCHARにしてた。) <参考>
  • エラー#1293:テーブル内でデフォルト値がCURRENT_TIMESTAMPにできるのは1つだけらしい。createdとmodifed両方にCURRENT_TIMESTAMPを付けていたのを、createdのみにした。<参考>

“RubyのActiveRecord単体使用でDB(MySQL)のデータ読込み・追加・更新・削除する方法”の続きを読む

スクレイピング取得した記事更新日付を、正規表現でDB格納用の日付フォーマットに整形する

前回書いたnokogiriを使ったRubyでのWebスクレイピングの初級編に続いて記事の更新日付を取得しますが、CSSメソッドを使えば同じ手順で簡単に習得できます。ただ、日付のフォーマットが「2015年09月29日 13時12分」となっているのを、データベースのDATETIME型で管理しやすいように「2015/09/29 13:12」という日付フォーマットに整形してあげるほうが望ましいです。

“スクレイピング取得した記事更新日付を、正規表現でDB格納用の日付フォーマットに整形する”の続きを読む

RubyのスクレイピングライブラリNokogiriの使い方チュートリアル

RubyのプログラミングやUnitテストの書き方も少しづつ分かってきたので、少し応用編でRubyを使ったWebスクレイピングをしてみようと思います。スクレイピングというのは、どこぞのWebサイトで公開されているコンテンツを、プログラミングを使って手元にガポッと取ってくるというあれです。

まず、Nokogiriを手元のMacbook Airにインストールする

公式サイトのインストール方法説明を参考にします。例の通り英語サイトですが、最近意識して英語読むようにしてるので、アレルギー無く読めるようになってきました。

“RubyのスクレイピングライブラリNokogiriの使い方チュートリアル”の続きを読む