Estoy tratando de intentar escribir mi primera herramienta web scraper en Node.js, ya que Python siempre me da problemas en mi máquina con Windows 11. Sin embargo, en Kali Linux 2021.3, funciona perfectamente. Incluso tengo Python en mi C:\ProgramFiles\Python310\python.exe, pero parece que pip todavía está en los datos de la aplicación. Es frustrante.
De todos modos, estoy tratando de usar el módulo Cheerio node.js. Aún así, quería asegurarme de que estaba haciendo esto correctamente. Quiero probar y darle una oportunidad a trends.vc, o tal vez a los resultados de búsqueda de Google si esa página es demasiado limitada. Usé ZAP en Kali para obtener todas las URL en Trends.vc, pero no estoy seguro de poder usarlas todas juntas en una sola función o no.
Estoy experimentando con raspadores web para ver si puedo recopilar una lista de correos electrónicos de join.trends.vc o solo del método de resultados de la Búsqueda de Google.
A continuación se muestra mi código para el javascript después de crear un paquete.json y usar npm test como mi comando de prueba, que no arroja nada, ya que estoy seguro de que lo arruiné hace un tiempo. También intenté implementar request-promise y html-email-scraper , y otros, pero sé que estoy escribiendo mal. Si alguien puede indicarme la dirección correcta, sería muy apreciado.
En este momento, solo intento extraer los correos electrónicos de esta página y convertirlos en un CSV. Seguí algunos tutoriales y logré que funcionaran, pero no para las páginas que estoy tratando de raspar.
const request = require("request-promise") const cheerio = require("cheerio"); const fs = require('fs'); const writeStream = fs.createWriteStream('post.csv'); request("https://join.trends.vc/", (error, response, html) => { if (!error && response.statusCode == 200) { const $ = cheerio.load(html); const datarow = $(".form01"); const output = datarow.find("div").text(); $(".field").each((i, data) => { const item = $(data).text(); const item1 = $(data).text(); // Write Row To CSV writeStream.write(`${title}, ${link}, ${date} \n`); }); // console.log(item); console.log(item, item1); } });