【问题标题】:Cheerio can't find IMG srcCheerio 找不到 IMG src
【发布时间】:2017-12-23 21:42:34
【问题描述】:

我的 Cheerio 代码似乎不起作用。我正在尝试从给定链接的imgWrap div 内的<img> 标记中获取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);
   });
})

【问题讨论】:

    标签: javascript express cheerio scraper


    【解决方案1】:

    原来这个特定的网站使用延迟加载来加载他们的图像,所以检查时的视图源实际上与 get 请求中收到的信息不同。

    get 请求没有与img 元素关联的src,而是一个data-cfsrc,它与视图源中的src 拥有相同的信息。

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

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

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

    【讨论】:

    • 我正在尝试使用它,但它让我无法定义,这是我输入“src”而不是 data-cfsrc 时的结果,data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
    猜你喜欢
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多