Emacsで手動スクレイピング

元ネタ

http://qiita.com/muran001/items/7a76a1c70aa12ed68cb6

はてぶのページからリンクを取得する

Vimほど楽ではない気がするが一応

M-x browse-url-emacs [RET] http://b.hatena.ne.jp/ctop/it
;; windowを切り替え, read-only-modeを解除
M-x replace-regexp [RET] >< [RET] >改行< ; 改行は C-r C-jで入力
M-x replace-regexp [RET] ^\s-+ [RET] ; 行頭の空白削除
M-x delete-non-matching-lines [RET] <a [RET]
M-x replace-regexp [RET] ^.*href="\([^"]+\)".*$ [RET] \1

Gifは割愛.

解説

データ取得

M-x browse-url-emacsで直に HTMLファイルを開けます

HTML整形

replace-regexpコマンドで頑張る

M-x replace-regexp [RET] >< [RET] >改行< ; 改行は C-r C-jで入力
M-x replace-regexp [RET] ^\s-+ [RET] ; 行頭の空白削除

フィルタリング

delete-non-matching-linesで指定した正規表現にマッチしない行を削除できる. その逆は delete-matching-linesでマッチした行を残す.

M-x delete-non-matching-lines [RET] <a [RET]

データの整形

やはり replace-regexpで頑張る

M-x replace-regexp [RET] ^.*href="\([^"]+\)".*$ [RET] \1 ; リンクの中身のみ取得

おまけ

正規表現をイメージするときは re-builderも良いかもしれない. 以下は reb-re-syntax'stringのときのスクリーンショットです.

f:id:syohex:20160111215649p:plain