我的cheerio代码似乎不起作用。我试图从给定链接的<img>
div中找到的imgWrap
标签中获取src。
我已经尝试重写.imgWrap
作为.imgWrap img
并删除find
,但这也不起作用......
但是,如果我做$(element).children()
或$(element).html()
我看到了我期望的结果......
request.get('http://www.bk.com/menu/burgers', function(error, response, body) {
const $ = cheerio.load(body);
let menu = $('.imgWrap').each(function(i, element) {
let thing = $(element).find('img').attr('src');
console.log(thing);
});
})
事实证明,这个特定的网站使用延迟加载来加载他们的图像,因此检查时的视图源实际上与获取请求中收到的信息不同。
get请求没有与src
元素关联的img
,而是data-cfsrc
,它与视图源中的src
保持相同的信息。
所以,这条线应该是这样的:
let thing = $(element).find('img').attr('data-cfsrc');
非常感谢@rlemon帮忙解决这个问题!