Google Apps脚本,UrlFetchApp和JQuery

时间:2013-05-31 16:46:45

标签: 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);之类的行不起作用。

1 个答案:

答案 0 :(得分:1)

作为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> 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' );
...