@titon で行っている方法なのですが、芸能人の出演番組に関する情報を perl でスクレイピングする方法について説明したいと思います。

@titon ではYahoo!テレビで「伊集院光」で検索した結果のページを Web::Scraper モジュールでスクレイピングして取得しています。スクレイピングの部分だけを抜粋すると次のような感じです。

簡単に説明すると、scraper に続くブロック部分にでは process の後に XPath もしくは CSS セレクタと、それで指定された部分のデータを保持する「キー名」を指定します。 「キー名」の後に TEXT と書けばそのタグのテキスト部分が取れるようです。ひとつの process で複数の値を撮ることもできます。4 つ目の process がその例ですが、 program[] の中身がさらに link と title をキーにもつハッシュになります。 @href のように @ を付けると属性を取得することができます。

正直言って scraper のブロックの書き方が perl のどういう文法なのかはさっぱり分からないので、このページと Web::Scraper 作成者である miyagawa さんの資料を見て、ケーススタディ的に覚えました。 vi `perldoc -l Web::Scraper` でファイルを見ても、残念ながらすぐに理解できるものではありませんでした。

閑話休題。必要なデータの数だけ process を設定した後は scraper が返す Web::Scraper オブジェクトに対して、scrape メソッドでスクレイピング対象ページの URI オブジェクトを渡します。するとハッシュの形でスクレイピングの結果を得ることができます。ちなみに @href や @src のように URL が取れる属性では URI::http オブジェクトなどが返ってきます。とはいっても URI オブジェクトはスカラコンテキストでは普通の文字列として扱われるのでなんら特別な処理は必要ありません。

ということで上記コードの実行結果です。

簡単ですね。@titon ではさらに実行時の日付のデータを整形して twitter にポストしています。ということで今さらながらスクレイピングの紹介でした。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 好きな芸能人の出演番組情報をスクレイピングする方法

このブログ記事に対するトラックバックURL: http://tsuyuguchi.com/mt/mt-tb.cgi/421

最近の画像

Zero History - ギブスンの新作が 9 月に発売 -
虐殺器官
ドミニオンのランダマイザアプリ、dominion minion が日本語対応!
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオン - 長大な叙事詩 SF のスタート -
ハイペリオン - 長大な叙事詩 SF のスタート -
「都市と星」 - 10億年と言われてもよく分からない -
「星を継ぐもの」 - 良い Sci-Fi -
トールサイズのニューロマンサーを買った
虎よ、虎よ! - 主人公フォイルの執念の物語 -

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2015年2月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ