Creé un script utilizando las bibliotecas de request y cheerio para obtener diferentes títulos de publicaciones y sus enlaces correspondientes de un sitio web. El guión parece estar funcionando bien. Si observa el siguiente script, puede ver que he usado getposts((item,link) => console.log({item,link})); para llamar a la función.
Ahora, la pregunta es:
¿Cómo puedo incluir startUrl (enlace del sitio web) como parámetro mientras llamo a la función manteniendo el resto de las lógicas como están?
var request = require('request'); var cheerio = require('cheerio'); const startUrl = 'https://stackoverflow.com/questions/tagged/web-scraping'; function getposts(callback) { request(startUrl, function(error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); $('.summary .question-hyperlink').each(function() { var items = $(this).text(); var links = $(this).attr('href'); return callback(items, links); }); } }); } getposts((item,link) => console.log({item,link}));Cree un nuevo parámetro para una URL y pase startUrl:
var request = require('request'); var cheerio = require('cheerio'); const startUrl = 'https://stackoverflow.com/questions/tagged/web-scraping'; function getposts(url, callback) { request(url, function(error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); $('.summary .question-hyperlink').each(function() { var items = $(this).text(); var links = $(this).attr('href'); return callback(items, links); }); } }); } getposts(startUrl, (item,link) => console.log({item,link}));