调用getposts函数时如何将startUrl作为参数传入且保留原有逻辑
实现方案
调整getposts函数的参数定义,将startUrl作为第一个入参,原有的callback作为第二个入参,同时删除原来全局声明的固定startUrl常量即可,修改后完整代码如下:
var request = require('request'); var cheerio = require('cheerio'); function getposts(startUrl, 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('https://stackoverflow.com/questions/tagged/web-scraping', (item,link) => console.log({item,link}));
核心修改点
- 给
getposts函数新增第一个参数startUrl,替换原函数内部引用的全局startUrl变量 - 移除全局硬编码的
startUrl常量,提升灵活性 - 调用时第一个位置传入需要抓取的站点链接即可,原有回调逻辑不需要做任何改动
内容的提问来源于stack exchange,提问作者SMTH
相关产品推荐
相关产品推荐

