読者です 読者をやめる 読者になる 読者になる

破棄されたブログ

このブログは破棄されました。

コマンドラインで (X)HTML をパースして遊ぶ

alias.sh | Manage, share and source your aliases online. 見てて、Wikipedia を引くとかユニークなものとか見てたらちょっとひらめいたんで、HTML パースする方法ないかなと思っていろいろググってたら hxselect とかいうのを見つけた。*1
hxselect は W3C の HTML-XML-UTILS に含まれるユーティリティの一つで、CSS セレクタで要素を抽出してくれるっぽい。
主要な Linuxディストリビューションだと、パッケージが提供されてるみたいなんだけど、Cygwin ちゃんにはなかったので自前でビルド。ペンギンかわいい。

概略

  • Index of /Tools/HTML-XML-utilsから、html-xml-utils-*.tar.gz の好きなバージョンをダウンロード
  • ./configure を実行
  • make すると、 config.h がないとか怒られるので、cexport.c の #include <config.h> を #include "config.h" に書き換える
  • make; make install

手順

Index of /Tools/HTML-XML-utils から、html-xml-utils-*.tar.gz をダウンロード。現時点の最新版の 6.3 を選んだ。ダウンロードできたら、解凍する。

wget http://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.3.tar.gz
tar zxvf html-xml-utils-6.3.tar.gz

解凍先に移動して、./configure を叩く。とくにこれといったオプションはなさそうだったので、prefix だけ変更した。

cd html-xml-utils-6.3
./configure --prefix=/usr/local/html_xml_utils

あとは make して make install するだけだと思ったら、config.h がないとか怒られる。 

$ make
gcc -g -O2 cexport.c -o cexport
cexport.c:39:20: fatal error: config.h: No such file or directory
コンパイルが中断されました。
: recipe for target `cexport' failed
make: *** [cexport] Error 1

仰る意味がよくわかりませんってことでググったら、<hoge.h> は指定されたディレクトリ下のみを、"hoge.h" はそれ加えてカレントパスもインクルードパスとしてインクルードをするらしい。*2C 系はさっぱりわからん。
なので、<config.h> を "config.h" に書き換えた。

--- cexport.c.org       2013-02-04 13:27:07.313130400 +0900
+++ cexport.c   2013-02-04 13:21:10.316124600 +0900
@@ -36,7 +36,7 @@
  * unnecessary recompilations.)
  */

-#include <config.h>
+#include "config.h"
 #include <stdio.h>
 #if STDC_HEADERS
 # include <string.h>

で、あとは make; make install して、インストール先を PATH に追加しておーわりっ!

make; make install
echo 'PATH=$PATH:/usr/local/html_xml_utils/bin' >> ~/.bashrc.local

*1:http://unix.stackexchange.com/questions/6389/parse-html-on-linux

*2:http://oshiete.goo.ne.jp/qa/2006018.html

広告を非表示にする