Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

Yahoo Pipesでスクレイピング ポイントはRenameとRegex

090610yahoopipes
Yahoo Pipesスクレイピングしてみた。思ったより大変だった。

  1. まずFetch Pageモジュールでデータを取り出す対象のページをとってくる。

    切り出す部分の最初と最後を指定すると、その部分だけが返ってくるようになる(少しずつ実験しながら進めたほうが良い)。

    区切りも指定すると、データがいくつかのitemに分けられる。
  2. この状態ではすべてのデータがcontentという項目に割り当てられ、そのままではRSSとして使えない。RSSとして使うには、基本的にはtitle, description, linkの3つの項目を用意してあげなければならない。

    090611yahoopipesscryping01

    ここではRenameモジュールを使ってcontentlinkdescriptionとにコピーしている。titledescriptionができたあとで作る。
    090611yahoopipesscryping02
  3. Regexモジュールdescriptionを作る。

    090611yahoopipesscryping03

    だが、普通にやっても1行目しか見てくれないので「m」オプションをオンにする。スペースは\sのはずなのだが、いろんなものにマッチしてしまう。ここでは結果オーライで進めている。

    何ヶ所もマッチするときは「g」オプション。
  4. Filterモジュールで不要なデータを落とす
  5. 先ほど使ったRegexモジュールで、今度はlinkを作る。

    090611yahoopipesscryping04

    いまいちよくわからないながらも$1などを使えばURLを切り出すことができた。なかなか大変。
  6. Renameモジュールdescriptionをコピーしてtitleとする

    090611yahoopipesscryping05
  7. Regexモジュールtitleをがんがん削り、スリムにする

    090611yahoopipesscryping06
  8. Outputモジュールでおしまい。