如何从浏览器中使用cheerio

时间:2017-03-05 13:49:32

标签: javascript node.js cheerio

我是JavaScript新手,我很确定我遗漏了从HTML页面使用JS(通过Web浏览器浏览)的基本功能。

我的目标是使用cheerio从a dynamic website中删除照片链接并将其显示在js小工具中(例如,使用lightslider),它看起来非常成功following this tutorial以获取以下脚本并在bash终端中通过 nodejs scrapt.js 运行它:

var request = require('request');
var cheerio = require('cheerio');
request('https://outbox.eait.uq.edu.au/uqczhan2/Photos/', function (error, respo
  if (!error && response.statusCode == 200) {
    console.log(html);
  }
});

但现在我无法在一般的webbrowser中运行此脚本(通过按f12 - >控制台),因为在第一个语法后显示错误:

>var request = require('request');
VM85:1 Uncaught ReferenceError: require is not defined
    at <anonymous>:1:15

我知道在使用它们之前需要加载一些JavaScript模块,例如d3.js.我需要跑:

<script src="https://d3js.org/d3.v4.min.js"></script>

使用所有d3功能。我应该如何实现允许我在网络浏览器中使用cheerio的相同内容?

3 个答案:

答案 0 :(得分:3)

您无法直接在浏览器中运行node.js代码。浏览browserify,这是一个允许您在浏览器中运行node.js代码的模块。

答案 1 :(得分:0)

简短答案与您包含d3 js库的方式相同。

require()requiredjs中定义,要使用require函数加载请求cheerio,您需要先导入requirejs,方法与导入d3相同。 requirejs site

Nodejs是服务器端javascript,在尝试在客户端的浏览器中运行它们时需要非常小心。比如创建休息端点是服务器端,无法在浏览器中完成。

如上面的答案所示,你可以使用像webpack之类的构建系统或像systemjs这样的加载器来加载脚本。

答案 2 :(得分:0)

Cheerio使用需要process的库,即Node进程对象,在浏览器中不可用。

然而,

browserify有效。

来源:无尽的头痛试图让cheerio与Webpack一起工作。