kotaoueはそんなかんじ

kotaoueの最新情報。

HTMLからフィードをぶっこ抜く using Yahoo!Pipes

今日の、Yahoo!Pipesは、フィードを出してないサイトの最新情報とかをもらっちゃおうというネタ。

今回ターゲットにしたのは、TRANSFORMERS GENERATION ONE タカラトミー トランスフォーマー公式サイト!!

       ______
      /    / _  \
      l    / ∠/   ヘ
     /    /          ヘ
    /   /            ヘ
    l__l_____   /ヘ
    VVVVVVVVVV /\/  ヘ
     vvvvvvvvv/ /,'       ヘ
     \_\_ /ヽ         ヘヘ ,ヘ
          |       ヽ        /ヘ/ヘ
          |      ヽ    /   ヘ/ヘ
          |       ヽ /      ヘ ヽ
          |─────|/        ヘ ヽ
           /       /          ヘ ヽ
      .___|ーーーーー |     γヽ___ヘ ヽ
    /      | .-、_,--, |    //      / )/ヽ
    / / ̄/ ̄| lΞ廿Ξl .|    ヽヽ ̄ ̄/ / /\/
  _/ / /   |  L 冖 」  |         _/ / /ヽ
 //////    |    ̄    |       //////  ヽ
 ヽヽヽ       |―――――|        ヽヽヽ    ヽ

で出来上がったのが、トランスフォーマー公式サイト 最新情報 フィード

あとは、Pipes: TRANSFORMERS by TAKARA TOMYの詳細を上から順に説明してみる。
見たい人だけ勝手にソース見てね。

  1. Fetch Pageは、Webページのデータを持ってくるモジュール。
    from から Toまでの間をデータとして持ってくるので、もとのWebページのソースを見て、ほしいデータがあるところの前後のタグを適当にチョイス。
    Split using delimiterで項目を分けるので、必要なデータが、<li>とかで分かれてると凄く楽。
    分かれてないと時は、仕方ないので、<a>タグで分ける orz
    ※200KB超えるサイズと、robots.txtでインデックス制御されてるページのデータは取れない。
  2. Renameモジュール使って、titleとlinkに情報をコピー
  3. Regexモジュールはその名のとおり正規表現のためのモジュール。
    ここで、いろいろごにょごにょして、フィードに要らない情報をこそぎ落とす。
    ※正規表現はPerlの文法。チェックボックスの g m c iも正規表現の修飾子
  4. フィードの本文作るためにもう一度Rename使って、titleをdescriptionにコピー。
    ※今回は、手抜きして本文とタイトルの内容を一緒にしちゃう。
  5. Filterを使って、差必要ないデータを取っ払ってやる。

これで完成!!
後は、ページのつくりによって微調整すればOKって感じだね。

まだまだPipes楽しい機能あるので、ちょいちょいいじっていきます。

P.S. 200KB超えるとかrobots.txtとかで制御されてるページは、
PHPとかRubyでHTTPリクエストして、自分のWebサイトにでも一旦保存してやれば取得できるような気がするけど、
著作権的にNGっぽい気がするから、やらない。

押すなよ絶対押すなよ!
    _γ⌒ヽ  
    (´Д`*) 
     U Uヽ  ,,,,,,,,,,,,, ノノハヾ
     しーJ (´∀` )(・∀・ ) ンーッ
|~~~| ̄ ̄|⊂| ⊂ | と と .)
|___|    ̄ し-J  し-J



コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>