投稿者 tel | 2012年8月26日

node.jsのjsdomをwindowsで動かす

xmlをnode.jsでスクレイピングしたいなーと思って試してみた。

node.js v0.8.7で試した。

npm install jsdom

jsdomをインストールしてみる。pythonがないよ、みたいなエラーが出る。

gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

python 2.7を入れる。(どうやら2.5~3.0のバージョンじゃないといけない)

ついでにpythonのパスを通す。コンソールで以下のコマンドを入力。

set PYTHON="C:\Python27\python.exe"

再度、jsdomをインストールしてみる。

どうやらcontextifyってモジュールがVC++でリビルドされてるっぽい。インストール成功!(64bit版のwindowsでVC++2010 Expressを使っている場合は64bitのビルド環境を入れないとダメかも)

jsdom@0.2.15 node_modules\jsdom
├── cssom@0.2.5
├── request@2.10.0
├── htmlparser@1.7.6
└── contextify@0.1.3 (bindings@1.0.0)

さっそくjQuery使ってみる。

var jsdom = require("jsdom").jsdom,
    fs = require('fs'),
    html = '<html><head></head><body><div><span id="a">hoge</span></div></body></html>',
    document = jsdom(html),
    window = document.createWindow(),
    jqueryUrl = 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js';

jsdom.jQueryify(window, jqueryUrl, function (window, $) {
    console.log($('#a').text()); // hogeが出力される
});

探したら詳しいインストール方法があった。
http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/
追記
動いたのでさっそく1MBくらいのXMLを入力してみたらwindowオブジェクト作るのが半端なく遅かったので使うの断念した。

 


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。