我是Node js的新手。我正在尝试从特定网站的“选择”选项卡中抓取一些值和名称。我的代码如下,
const rp = require('request-promise');
const crio = require('cheerio');
const url = 'https://myurl';
const getOptions = function(optionName,ignoreOption) {
return rp(url)
.then(function(html) {
crio('[name='+optionName+']', html).find('option').each((i,op) => {
if(crio(op).text() != ignoreOption && crio(op).text() != '')
return {
name: crio(op).text(),
value: crio(op).val(),
};
})
})
.catch(function(err) {
//handle error
});
};
getOptions('test','-- Select company name --')
.then( data =>
console.log(data)
);
当我尝试运行此代码时,得到的结果为“未定义”。如何从此处的getOptions函数获取return json响应?
答案 0 :(得分:0)
您没有在使用crio的then函数中返回任何值。
更改
crio('[name='+optionName+']', html).find('option').each((i,op) => {
到
return crio('[name='+optionName+']', html).find('option').map((i,op) => {
请注意使用地图,而不是每个地图。