【问题标题】:prevent load image on nodejs request防止在nodejs请求上加载图像
【发布时间】:2018-03-29 17:23:09
【问题描述】:

我正在使用requestcheerio 来解析nodejs 中的一些网页。我们每天这样做超过 20 次,因此我们在加载对解析无用的图像和 css 内容时损失了很多带宽。

我使用了一些这样的代码:

request(url, function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    $('.n-item').each(function(i, element){
      //do something
    });
  }
});

1-我想知道 request 加载图像/内容并可能丢失我的服务器带宽是正确的吗?

2-告诉我一个防止加载图像/内容的解决方案

谢谢

【问题讨论】:

  • 一种开箱即用的方法是在您的节点应用程序和您正在访问的网络服务器之间放置类似 nginx 的东西。然后让 nginx 为任何图像请求返回一个小图像。
  • 是的,请求只加载url,不加载相关资产。

标签: node.js parsing web-scraping request cheerio


【解决方案1】:

请求本身不解析 HTML 代码或运行 Javascript。它只会下载您输入的源或 URL。如果它是一个普通的网站,它会从字面上返回 HTML 源代码。

只有在使用直接链接到图像的 URL 时才能使用“请求”拉取图像。例如http://example.com/image.jpg

【讨论】:

    最近更新 更多