Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

206
Vistas
Extraer texto con cheerio

Estoy tratando de escribir un script para extraer la identificación y el nombre del correo electrónico de este sitio web. Intenté el siguiente fragmento pero no funciona.

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>foo</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href=""> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> </head> <body> <div> <strong style="color: darkgreen;">Can read this tag</strong> <object id="external_page" type="text/html" data="https://aleenarais.com/buddy/" width="800px" height="600px" style="overflow:auto;border:5px ridge blue"> <!-- I want to read tag values from this object --> </object> </div> <script> window.addEventListener('load', function () { const item = []; $('strong[style="color: darkgreen;"]').each(function () { item.push($(this).text()) }) console.log(item) }) </script> </body> </html>

¿Hay alguna manera mejor de hacer esto? ¿O es posible convertir toda la página en una cadena y extraer el correo electrónico usando RegEx?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El correo electrónico y el nombre de la página web se representan en un iframe. La fuente de iframe es una fuente externa. Para que pueda extraer la información, necesita usar un navegador sin cabeza para hacerlo.

Sugeriría usar Node.JS & Puppeteer ( https://www.npmjs.com/package/puppeteer )

 const puppeteer = require("puppeteer"); (async() => { const url = "https://aleenarais.com/buddy/"; const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(url, { waitUntil: "networkidle0" }); var frames = await page.frames(); var myframe = frames.find( (f) => f.url().indexOf("https://feedium.app/fetchh.php") > -1 ); const textFeed = await myframe.$$eval("strong", (sElements) => sElements.map((el) => el.textContent) ); console.log(textFeed.splice(1)); //Array contains both name and email await browser.close(); })();

Titiritero carga la página de forma similar a como un usuario carga la página. Espera hasta que se realizan todas las llamadas de red (ver red inactiva0) y luego intenta encontrar el iframe que tiene la url (fetchh.php). Si observa, el nombre y el correo electrónico están presentes en las etiquetas fuertes y son las únicas etiquetas fuertes disponibles. Por lo tanto, estamos extrayendo las etiquetas fuertes, eliminando el conteo y nos quedamos solo con el nombre y el correo electrónico.

Salida: [ 'J J', 'j *j@gmail.com' ] //Acabo de enmascarar los valores pero el programa da los reales

Pasos para ejecutar el script:

  1. Instale Node.Js ( https://nodejs.org/en/download/ )
  2. Instalar titiritero usando (npm i titiritero)
  3. copie el script y colóquelo en el archivo (demo.js)
  4. En la terminal, navegue hasta el directorio en el que está presente demo.js y luego ejecute node demo.js

Deberías ver la salida.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Prueba esto:

 window.addEventListener('load', function () { let item = []; $('strong[style*="color: darkgreen;"]').each(function (index, item) { item.push($(this).text()) }) console.log(item) }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda