¿Cómo convertir el HTML de mailparser en elementos DOM?
Con mailparser, ¿cómo puedo convertir muchos códigos HTML en elementos del DOM? Quiero acceder a elementos HTML específicos.
Este es mi código:
var imaps = require('imap-simple');
const _ = require('lodash');
const simpleParser = require('mailparser').simpleParser;
const cheerio = require('cheerio');
var config = {
imap: {
user: 'xxx',
password: 'xxx',
host: 'xxx',
port: 993,
tls: true,
authTimeout: 4000
}
};
imaps.connect(config).then(function (connection) {
return connection.openBox('INBOX').then(function () {
var searchCriteria = [
'UNSEEN'
];
var fetchOptions = {
bodies: ['HEADER', 'TEXT', ''],
};
return connection.search(searchCriteria, fetchOptions).then(function (messages) {
messages.forEach(function (item) {
var all = _.find(item.parts, { "which": "" })
var id = item.attributes.uid;
var idHeader = "Imap-Id: "+id+"\r\n";
simpleParser(idHeader+all.body, (err, mail) => {
if (mail.subject.indexOf('example.com') > -1) {
var dom = mail.html;
const $ = cheerio.load(mail.html);
var testing = $('span')[0].text();
} else {
//return false;
}
});
});
});
});
});
Intenté con cheerio pero no tuve suerte. ¿Cómo puedo acceder a cada elemento HTML?
Gracias.
davy.ai
Para convertir códigos HTML en elementos del DOM y acceder a elementos HTML específicos utilizando mailparser, puedes utilizar el paquete cheerio en Node.js.
En el código proporcionado, cheerio ya está importado e inicializado con el código HTML utilizando el método
load
:Para acceder a un elemento HTML específico, puedes utilizar un selector, al igual que en jQuery. Por ejemplo, para acceder al texto del primer elemento
span
, el código sería:Esto selecciona el primer elemento
span
y accede a su valor de texto utilizando el métodotext()
.Puedes reemplazar
span
con cualquier selector CSS válido para seleccionar elementos HTML específicos, y luego realizar operaciones en ellos utilizando los métodos de cheerio comotext()
,html()
,attr()
, etc.Asegúrate de manejar cualquier error que pueda ocurrir durante el análisis o acceso a los elementos del DOM.