fascinated with tofu

豆腐に魅せられて

Google 先生に聞いても意外とわからなかったウェブスクレイピング実践編2

先ポストの続きです。基本的な実施例は以下をまず御覧ください。

tofu.hatenadiary.com 

そもそもスクレイピングって何?という方は以下を御覧ください。

tofu.hatenadiary.com

今回はもう少し複雑なことを実施してみます。Nokogiri だけでなく、Rubyスクレイピングフレームワーク Anemone を使います。

やりたいこと4:自分が観た映画のリストの取得

正規表現書き途中で自信がないですが・・・

gist3f06830610a0511e5cef5f0d715d8085

実行します。

ruby sample4.rb

結果です。

"ファンタスティック・ビーストと魔法使いの旅"
"ローグ・ワン/スター・ウォーズ・ストーリー"
"ブルーに生まれついて"
"この世界の片隅に"
"湯を沸かすほどの熱い愛"
(長いため以下略)

やりたいこと5:スコアも一緒に取得したい

タイトルと一緒にスコアを一緒に取得してみたいと思います。

giste16ee92329a357810e56056eb266492e

実行します。

ruby sample5.rb

結果です。

"ファンタスティック・ビーストと魔法使いの旅"
"3.5"
"ローグ・ワン/スター・ウォーズ・ストーリー"
"4.0"
"ブルーに生まれついて"
"4.2"
"湯を沸かすほどの熱い愛"
"5.0"
(以下省略)

 こんな形で好きな要素を複数取ってくることもできました。

やりたいこと6:Clips で試してみる

正規表現の部分がおかしいのだと思いますが、うまくいっていないため、今度は観た映画ではなく、観たい映画としてクリップしているタイトルとその平均スコアを取ってきたいと思います。
場所はhttp://.../users/hogehoge/clips?=<数字>です。

gist91714cc86a0fbd56ddf4f96ff3b7f943

実行します。

ruby sample6.rb

結果抜粋です。

"ディア・ハンター"
"4.0"
"ジキル博士とハイド氏"
"3.3"
"俺たちは天使じゃない"
"3.5"
"俺たちは天使じゃない"
"3.6"
"ライトスタッフ"
"3.8"
(以下省略)

こちらはきちんと全部取り出せていました。

参照

クロールするときの動きは以下を参照しました。

Anemoneによるクローラー入門

Anemone - Information and Examples

パイプ以外にも便利な表現が沢山ありますね。

XPath Cheat Sheet