代码之家  ›  专栏  ›  技术社区  ›  Naji

Cheerio找不到IMG src

  •  1
  • Naji  · 技术社区  · 7 年前

    我的cheerio代码似乎不起作用。我想从 <img> 在中找到标记 imgWrap 给定链接处的div。

    我试过重写 .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);
       });
    })
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Naji    7 年前

    事实证明,这个特定网站使用延迟加载来加载其图像,因此检查时的视图源实际上与get请求中接收到的信息不同。

    get请求没有 src 与关联的 img 元素,而是 data-cfsrc 其保存的信息与 src公司 在视图源中。

    所以,这条线实际上应该是这样的:

    let thing = $(element).find('img').attr('data-cfsrc');
    

    非常感谢@rlemon帮助您解决此问题!