Skip to content

Latest commit

 

History

History
66 lines (47 loc) · 2.76 KB

1409241037.org-babel-results-output-raw.org

File metadata and controls

66 lines (47 loc) · 2.76 KB

Emacs×Ruby: org-babelでorg文書を出力させる方法。Rubyクローラーの例あり。

『Rubyによるクローラー開発技法』 、相変わらずamazonの在庫が戻らないです(泣)

みんなの反応

5 : koyancya@hatena 2014/07/31 14:06:18 きっとページを開くと Emacs の本なんですよね

これに爆笑してしまいました。

というわけで突如Emacs×Rubyクローラーな話題を。

僕は、まあなんだかんだ言ってるけど org-mode 愛用してます。

その中でもorg-babelは可能性があっておもしろいと感じています。

僕は昔からWebサイトから情報を抜き出すスクリプト… クローラー(というほど大きな物ではない10行前後のもの)を たくさん作ってきました。

個人的に情報を整理して Emacsw3m で 見やすい形に整形する目的が多いです。

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文書に出力しているだけです。