【问题标题】:Using Javascript libaries such as Cheerio without node.js在没有 node.js 的情况下使用 Javascript 库,例如 Cheerio
【发布时间】:2018-02-27 23:06:25
【问题描述】:

所以目前我正在开发一个 HTML 页面,该页面显示来自网络的各种内容,我计划使用网络爬虫获取这些内容。我见过各种各样的爬虫,其中大多数都使用 Cheerio 和 Request APIs/Libraries。然而,所有这些教程(例如:http://www.netinstructions.com/simple-web-scraping-with-node-js-and-javascript/)都使用 Node.js 而不仅仅是 HTML 文件和 .js 文件。我对使用 node.js 没有兴趣,因为这是一个纯粹在本地 PC 上运行的页面(不是托管也不是作为网页运行)使用 node.js 似乎只会增加复杂性,因为至少在我的理解中node.js 确实允许在服务器端而不是客户端执行 javascript。所以我的问题是如何将库(例如:https://github.com/cheeriojs/cheerio)下载并导入到我的主 javascript 文件中,以便它可以通过浏览器运行?

编辑:即使 node.js 不只是用于服务器端,我的问题仍然存在。浏览器运行 Javascript,因此如果我将要使用的库与主 .js 一起打包并引用它们,它将在没有 node.js 的情况下工作。我只是不知道如何正确地做到这一点,例如有很多 .js 文件的cheerio。 编辑2:另外,如果有人可以指出我正确的方向或指向可以帮助我制作刮板的教程,如果您不能在客户端使用这些东西,它也可能会有所帮助。

【问题讨论】:

  • 我觉得你对node.js的理解有点不对。它不用于执行代码服务器端,它用于执行 javascript 代码。 Express(它是一个 node.js 库)是 node.js 服务器的一个示例。
  • 这里是客户端报废的一个例子:link

标签: javascript libraries cheerio


【解决方案1】:

您不能在客户端中导入cheerio,因为它是专门为nodejs 制作的。但 cherrio 是 jQuery 的服务器端实现(仅在浏览器中运行)。

要导入 jquery,您可以将其作为 html 中的链接。例如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

您应该在导入自己的 javascript 文件之前放置此文件。

然后在您的 javascript 中,您将可以访问 $,它是主 jQuery 对象的别名。

这是一个很好的例子:How do I link a JavaScript file to a HTML file?

【讨论】:

    【解决方案2】:

    更新: 寻找类似的解决方案发现了这个: Github solution 您只需使用

    安装软件包
    npm i cheerio-without-node-native@0.20.2
    

    并且可以在没有 nodejs 的情况下使用cheerio。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-11-16
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      相关资源
      最近更新 更多