ハードドライブに、jquery を使用してデータを抽出したい html ファイルがいくつかあります。これはチェリオを使用して行うことは可能ですか? チェリオにローカル パスを指定しようとしましたが、うまくいきません。私が持っていた1つのアイデアは、ノードでWebサーバーを作成し、htmlファイルから読み取り、サーバーを介してcheerioにパイプすることです-これは
20239 次
3 に答える
10
html ファイルは、モジュールからの関数で非同期に読み取ることができます。ファイルの読み込みが完了すると、コールバック関数に 2 つの引数が渡されます。readFile
fs
(err, data)
受信した には html コンテンツが含まれており、cheerio関数data
に簡単に渡すことができます。load
var cheerio = require('cheerio');
var fs = require('fs');
fs.readFile('path/to/file.html', 'utf8', function(err, data) {
if (err) throw err;
var $ = cheerio.load(data);
console.log($.html());
});
補足: エンコーディング utf8 がオプションの第 2 引数として指定されているため、typeof
データは文字列です。エンコーディングが省略された場合、データはbufferになります。それでも、ロード関数はこれを理解します。これは、バッファが次のように内部的に文字列に変換されるためです。
if (Buffer.isBuffer(content))
content = content.toString();
fs.readFile()のドキュメント
于 2018-12-12T20:04:16.967 に答える