『Rubyによるクローラー開発技法』 、相変わらずamazonの在庫が戻らないです(泣)
みんなの反応 で
5 : koyancya@hatena 2014/07/31 14:06:18 きっとページを開くと Emacs の本なんですよね
これに爆笑してしまいました。
というわけで突如Emacs×Rubyクローラーな話題を。
僕は、まあなんだかんだ言ってるけど org-mode 愛用してます。
その中でもorg-babelは可能性があっておもしろいと感じています。
僕は昔からWebサイトから情報を抜き出すスクリプト… クローラー(というほど大きな物ではない10行前後のもの)を たくさん作ってきました。
個人的に情報を整理して Emacs や w3m で 見やすい形に整形する目的が多いです。
org-babelを使えば、ソースコードと実行結果を 1つのファイルにまとめられます。
短いスクリプトをorg文書に埋め込んでおいて、 ソースコードの部分でC-c C-cを押すだけでorgファイルが 書き変わります。
org-babelの #+BEGIN_SRC 行で「:results output」を指定すると 出力結果がソースコードの後に書き出されます。
多くの場合はこれでいいのですが、org文書を吐き出すコードの場合は 「#+begin_example 〜 #+end_example」で囲まれてしまうため、 都合がよくありません。
org文書を書き出す場合は「:results output raw」を指定します。
以下の例は僕のサイトの記事一覧をとってきます。
サイトマップ http://rubikitch.com/?sitemap の内容をNokogiriで解析し、 class=”sitemap”なるUL要素を取得し、 内部のA要素からリンクとタイトルを得て、 org文書に出力しているだけです。