3

我有一批 HTML 文件需要一些易于使用 jQuery 执行的版本(主要是选择一些节点并更改它们的属性)。

我实现这一点的方法是在 Google Chrome 中一一打开它们,在控制台中执行 jQuery 代码,然后将生成的 DOM 复制回我的 HTML 编辑器。

由于我目前正在做的事情需要很多时间,而且由于每个文件都需要相同的版本(即,相同的 jQuery/JS 代码适用于每个 HTML 文件),我正在考虑编写一个脚本/program 来做到这一点。

无论如何,我并不完全清楚我应该采取以下哪种(如果有的话)方法来完成这项任务。

  1. 使用一些文件系统/文件操作库(哪个?)使用 jQuery编写 JavaScript脚本

  2. 使用一些基于 jQuery 的库(如CsQuery编写 Java 或 C# 程序

  3. 为我的一些编辑器(Aptana、Notepad++、Eclipse 等)或支持类似 jQuery 的编辑命令的完全不同的编辑器(就像 notepad++ 正则表达式替换支持)找到一个插件。大批量时这会很慢,但至少它可以让我避免烦人的复制/粘贴到/从 Chrome。

其中一种方法是完成我需要的正确方法吗?(有没有正确的方法来做到这一点?)哪个应该更直接?

我认为#2 对我来说会更容易,因为我在 Java 和 C# 方面的经验比在 JavaScript 方面要多得多,但我认为这个想法可能有点像使用大锤来破解坚果。

4

2 回答 2

2

您应该考虑使用PhantomJs。它是一个可以从命令行执行的无头 WebKit。它接受一个javascript 或coffeescript 文件作为参数,可用于例如对网页执行某些操作。这是一个例子:

var page = require('webpage').create();
   page.open('http://m.bing.com', function(status) {
      var title = page.evaluate(function(s) {
         return document.querySelector(s).innerText;
      }, 'title');
      console.log(title);
      phantom.exit();
   });
于 2012-12-27T19:12:15.390 回答
1

我不确定正确的方法,但听起来您对 C# 很熟悉,并且认为编写类库对于自动化来说开销最小。以下是一些潜在的解决方案:

  1. 脚本库(例如,C#.NET) -如果您想使用 DOM 操作,您可以使用您提到的库或ScriptSharp之类的库。如果 HTML 有适当的结束标记,您还可以使用 LINQ 轻松导航 HTML(或 CodePlex 上的 HTML Agility Pack 之类的东西)。我什至建议在 C# 中将 Mustache 与 HTML 文件模板一起使用。

  2. JavaScript 库- 如果您想继续使用纯 JavaScript,您可以使用 Node.js。您可以使用一些文件操作库。

  3. 无头浏览器- 没有想过能够自动保存生成的 HTML,但您可以使用jsTestDriverPhantom.js 之类的东西

您也可以在编辑器中使用插件,但我会坚持使用 Java、C#、python 等库,您可以从现有应用程序中调用它们或将其安排为作业/服务。

于 2012-12-27T19:17:37.887 回答