2011-10-18 8 views
2

jsdom(node.jsモジュール)をWindows上で動作させようとしています。 ノードバージョン用にビルドされていないと不満を持ち続けます。Windows上でnode.jsを使用してWebサイトを削る

Linuxマシンにノードがインストールされており(同じバージョン、0.5.9、ソースから)、ノードウェーファーされています。 は、それから私は...まだ

ノーゴー(node_modules下)Windowsマシンに

任意のアイデアを、それをコピーしましたか?またはHTMLを解析するためのその他の推奨事項ノードからのリクエストに対する応答から得られますか?

jsdom経由でjqueryを使用すると甘いでしょう。

乾杯。

答えて

0

あなたがしようとしていることを正確にはわかりませんが、請求書に合うかもしれないnode.io has a scraping frameworkです。

+0

おかげで、私もこれをチェックします。 – Shh

+0

いいえ。どのモジュールが1つであるのかわからなくても、モジュールの欠落について苦情を言います。 – Shh

+0

ウィンドウを使用している場合は、package.jsファイルを参照し、依存関係を解決するために必要なモジュールを手動でダウンロードする必要があります。あるいは、Windows上でnpmの実験版を試してみて、npm install([readmeを確認](http://npmjs.org/doc/README.html)を参照)してください。 – hross

1

node.jsが絶対必要でない場合は、私たちの仲間SO-ist @nrabinowitzがpjscrapeをチェックしてください。テスト済みで実証済みです。

また、node-scraperは、222人のウォッチャーと11個のフォークがあなたの仕事にとって適切なツールであるように思われます。ユースケースはreadmeまたはright here on SOにあります。

+0

ありがとう、私はそれをチェックアウトします。 – Shh

+0

OK、チェックしました。立ち入り禁止。 node-scraperにはコンテキストが必要です、同じエラー – Shh

+0

私はあなたにcontextifyがインストールされていると思いますか? – vzwick

1

jsdom(> = 0.2.3)は現在、Windowsでうまく動作しないC++アドオンが必要です。私はあなたの最善の策は、[email protected]をインストールし、jsdomのウィンドウのコンテキストでjavascriptを実行することによって引き起こされるメモリリークを回避することだと思います。

回避策が含まれます:DOM

  • あたりの新しいプロセスがウィンドウを再利用し、document.body.innerHTML = '..new markup..';
  • 意思によってDOMを置き換える

    • 卵は、離れてC++アドオンから移動することです残念ながらそれは現時点では可能性はありません。

    0

    私はただのNode.jsモジュールチェリオでプレーしてきた、とjsdomと比較して、それはです:

    • 壊れたために多く弾力
    • をインストールする方がはるかに簡単
    • はるかに高速HTML(jsdomと比較)
    • そして、サーバー側で使用するほとんどのjQuery関数を提供します。

    http://matthewmueller.github.com/cheerio/


    スクレーピング例:

    var request = require('request'), 
        cheerio = require('cheerio'); 
    
    request('http://encosia.com', function(error, response, body) { 
    
        // Hand the HTML response off to Cheerio and assign that to 
        // a local $ variable to provide familiar jQuery syntax. 
        var $ = cheerio.load(body); 
    
        // Exactly the same code that we used in the browser before: 
        $('h2').each(function() { 
         console.log($(this).text()); 
        }); 
    
    }); 
    
    関連する問題