我正在尝试用nodejs和cheerio拖走一个刮板。 到目前为止,我已经知道了:
class ScrapperService {
static getDwelling(url) {
const dwelling = {
images: []
};
return new Promise((resolve, reject) => {
request(`https://www.zonaprop.com.ar/propiedades/${url}`, (err, resp, html) => {
if(err || resp.statusCode === 404) {
return reject(err);
}
const $ = cheerio.load(html);
pe = $('.price-operation', '#article-container').text();
dwelling.price = $('.price-items', '#article-container').text();
dwelling.description = $('.description-container', '#article-container').html();
//getting images here
$('#tab-foto-flickity').find('img').each(() => {dwelling.images.push(this);});
resolve(dwelling);
});
});
}
}
module.exports = ScrapperService;
答案 0 :(得分:0)
获得空值的原因是由于在() =>{}
回调中使用了箭头功能each
。
箭头函数没有没有this
。尝试使用经典的匿名函数。
请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions