javascript - Google Apps 脚本、UrlFetchApp 和 JQuery

标签 javascript jquery google-apps-script

我想每天加载一个网页(也许一天多次),解析其数据和电子邮件结果。

为了解析网页,我使用了 parse.gs 脚本,如下所示:

var url="http://http://example.com";
var page = UrlFetchApp.fetch(url).getContentText();
var XmlDoc = Xml.parse(page, true);   

当我解析 XmlDoc 时,我只有 getElement/s 函数可用,并且我发现很难完成有效的工作。所以我想使用更高效的东西,比如 JQuery 选择器。

据我所知,我必须向项目添加一个 jquery.html 页面,例如:

<html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
</html>

然后向 parse.gs 添加函数:

function doGet() {
   return HtmlService.createHtmlOutputFromFile('jquery');
}

调用doGet后,如何解析XmlDoc?使用像 $('#content').html(XmlDoc); 这样的行不起作用。

最佳答案

作为 jquery 的替代方案,尝试完全在 apps-script 中构建 Xml 服务的功能。

A previous answer引入了一个实用程序函数,该函数通过搜索与搜索条件匹配的属性来定位 XML 文档中的元素。

getElementByVal( body, 'input', 'value', 'Go' )  

... will find
  <input type="submit" name="btn" value="Go" id="btn" class="submit buttonGradient" />

它还显示了一种可能的特化,用于搜索 <div> 的“id”属性s:

getDivById( html, 'tagVal' )

... will find <div id="tagVal">

如果您能够唯一地标识一个元素,如上面的示例所示,一个简单的脚本就可以轻松地获取该元素:

var url="http://http://example.com";
var page = UrlFetchApp.fetch(url).getContentText();
// Get <div id="content">
var contentDiv = getDivById( pageDoc.getElement().body, 'content' );
...

关于javascript - Google Apps 脚本、UrlFetchApp 和 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862134/

相关文章:

javascript - 从外部调用react组件

javascript - 注册表单验证问题

javascript - 如何使用 Angular.js/JavaScript 为我的 HTML 页面支持多语言?

javascript - 如何向 Google 表单添加登录信息以供用户填写

javascript - 如何将这个为每个对象添加键的_.each函数转换为Ramda?

javascript - 如何在 ReactJS 中使用 filter() 从数组中删除一项 - 函数无法正常工作

javascript - HTML5 输入类型范围从正面到负面

javascript - 请修复代码 append() 和 empty()

javascript - RegExp 未返回解析版本号字符串的预期结果

google-apps-script - Google 表格应用脚本 : How do I edit the Apps Script below to only copy over data from Column A to L and P to S?