es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , , ,

Answer

  1. Avatar for 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:

    const $ = cheerio.load(mail.html);
    

    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:

    var testing = $('span')[0].text();
    

    Esto selecciona el primer elemento span y accede a su valor de texto utilizando el método text().

    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 como text(), html(), attr(), etc.

    Asegúrate de manejar cualquier error que pueda ocurrir durante el análisis o acceso a los elementos del DOM.

Comments are closed.