scraping node cherrio jquery html node.js local cheerio

jquery - cherrio - ¿Puedo cargar un archivo html local con el paquete cheerio en node.js?



scraping node js cheerio (2)

La entrada es una cadena html, por lo que debe leer el contenido html usted mismo:

var fs = require(''fs''); cheerio.load(fs.readFileSync(''path/to/file.html''));

Tengo algunos archivos html en mi disco duro de los que me gustaría usar jquery para extraer datos. ¿Se puede hacer esto usando cheerio? He intentado darle a cheerio el camino local pero no funciona. Una idea que tenía era crear un servidor web en el nodo, leer el archivo html y luego canalizarlo a cheerio a través del servidor.


Un archivo html se puede leer de forma asíncrona con la función readFile del módulo fs . Cuando la lectura del archivo finaliza, la función de devolución de llamada recibe dos argumentos (err, data) .

Los data recibidos contienen el contenido html y se pueden pasar simplemente a la función de load cheerio.

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()); });

Sidenote: Debido a que la codificación utf8 se especifica como un segundo argumento opcional, el tipo de datos es una cadena. Si se omite la codificación, los datos serán un buffer . Sin embargo, la función de carga entiende esto, porque el búfer se convierte internamente en una cadena con:

if (Buffer.isBuffer(content)) content = content.toString();

Documentación de fs.readFile()