Node.js 关于一个简单的命令行web scraper(Clojure/ClojureScript)的一些问题

Node.js 关于一个简单的命令行web scraper(Clojure/ClojureScript)的一些问题,node.js,clojure,web-scraping,jvm,clojurescript,Node.js,Clojure,Web Scraping,Jvm,Clojurescript,我正在用Clojure/ClojureScript编写一个小的网页抓取程序。这是一个非常简单的命令行应用程序(适用于Linux),它可以访问网页、过滤结果并将其打印到控制台 然而,这引发了一些问题——不仅仅是因为我来自JS/Node.JS的背景,而Clojure对我来说是一个新事物 (1) 首先:这对于Clojure程序来说是一个好任务,它将作为.jar文件交付给JVM。启动JVM很慢,但是程序需要快速启动和停止,因为它是日常使用的。但是我想有一些方法可以让一个JVM在后台运行,然后等待它按需执

我正在用Clojure/ClojureScript编写一个小的网页抓取程序。这是一个非常简单的命令行应用程序(适用于Linux),它可以访问网页、过滤结果并将其打印到控制台

然而,这引发了一些问题——不仅仅是因为我来自JS/Node.JS的背景,而Clojure对我来说是一个新事物

(1) 首先:这对于Clojure程序来说是一个好任务,它将作为.jar文件交付给JVM。启动JVM很慢,但是程序需要快速启动和停止,因为它是日常使用的。但是我想有一些方法可以让一个JVM在后台运行,然后等待它按需执行jar文件。(?)

(2) 另一种方法是使用ClojureScript并将其编译为节点友好的JavaScript。这肯定会解决上一段的问题。但我不确定是否有必要

(3) 另一个问题是,使用哪个库。当然,这也与前面几点有关。是否有一个好的Clojure/ClojureScript库用于此目的?基本上用于使用CSS选择器查询DOM。在JS中,我将使用JsDom,它读取HTML字符串并从中创建“影子DOM”。在Clojure世界中,哪些是等价物

(4) 另外一个好处当然是有一个库,它可以处理常见的网络抓取任务。例如:处理分布在多个编号页面上的信息。(例如,搜索引擎的结果)


有人给我一些提示吗?

正如您已经确定的,Clojure程序不必编译成JVM字节码。由于您有JS的背景,我建议您为Node编译scraper。如果您是Clojure新手,那么使用一些熟悉的工具会有所帮助

通过这种方式,您可以设置相同的工具链来进行客户端和服务器构建。您还可以利用V8近乎即时的启动时间。虽然实际上有

您可能想看看―一个用于解析HTML字符串并使用类似css的选择器对其进行操作的库。然而,如果您正在编译到JS,NPM上也有大量可用的抓取库和工具


对于一个具有更多功能的刮削库,您可能需要结帐,因为这似乎是一个很好的起点。

嘿,丹·普林斯,这些年来有什么更新吗?我需要做类似的事情。我的第一个ClojureScript应用程序@dan princeI将利用这些天来构建它,并在必要时与npm挂钩。