这是我的情况:我的公司在电子邮件、日历、文档等方面严重依赖谷歌。每个部门都有一个谷歌网站,上面有部门信息,最近我接到了维护部门网站的任务。该公司还在各种内部网页面上设置了大量资源。我想在我的Google网站上包含一些来自我们内部网页面的内容,我可以想出两种可能的方法来做到这一点。
理想情况下,由于它只是我想要从内联网页面抓取的文本,我想编写一个Google应用程序脚本来从我的内联网上的站点读取HTML,并解析HTML以提取我想要在该站点上拥有的文本。为了测试,我只是尝试在我的应用程序中将页面的HTML显示为文本,如下所示:
function doGet(e) {
var app = UiApp.createApplication();
var myUrl = "http://www.yahoo.com";
var responseHtml = UrlFetchApp.fetch(myUrl);
var myLbl = app.createLabel(responseHtml.getContentText());
var mypanel = app.createVerticalPanel();
mypanel.add(myLbl);
app.add(mypanel);
return app;
}//END doGet这适用于公共站点,但当我使用来自内部网页面的URL尝试它时,我收到一条“语法错误: DNS错误:...”。我假设是因为Google托管了该网站,并且无法访问我们的内部网,尽管您不能从我们的网络外部访问我们的任何Google产品,因此可能情况并非如此。我找到一个站点,说要尝试使用UseIntranet参数,但我仍然收到相同的错误:
var responseHtml = UrlFetchApp.fetch(gemUrl, {useIntranet:true});我是不是做错了什么?
我的第二个想法是,因为我一天只需要更新几次,所以编写一个Python脚本在本地运行,它将从intranet页面获取HTML并对其进行解析,然后更新我的Google站点上的内容。我已经有了从内联网中提取所需内容的本地脚本,我只需要找到一种方法来从本地python脚本更新Google站点。(我知道这是一种倒退的方式,但如果它有效,我也没问题)
那么有没有办法从本地脚本更新Google站点呢?
提前感谢您的帮助!!
编辑:我应该澄清我是从哪里开始做这件事的。我正在使用谷歌网站。当我进入管理我的网站时,有一个添加Google Apps Scripts的部分。因此,我已经为我的Google站点创建了一个Google Apps脚本,在那里我正在编写代码,以尝试读取内部网页面的HTML内容。然后我进入并编辑我网站上的一个页面,选择“插入”,然后选择“应用脚本小工具”。然后,我选择为我的Google站点创建的Apps Script Gadget并将其添加到页面。
发布于 2012-02-28 12:13:18
有两个选项:
https://stackoverflow.com/questions/9235303
复制相似问题