并非所有来自网站的视图来源http://www.portofhueneme.org/home.php均已从UrlFetchApp.fetch().getContentText
进行检索。
我听说UrlFetchApp只是python的urllib2模块的包装器。一个 previous post提到urllib2没有获取从脚本动态生成的上下文,但我找不到任何会生成页面其余部分的脚本。
我正试图在“重要公告”下列出日期。
function test_date() {
var url = UrlFetchApp.fetch('http://www.portofhueneme.org/home.php') ;
var text= hueneme_url.getContentText() ;
Logger.log(hueneme_text) ;
var pattern = /Current Vessel Schedule/
var start = hueneme_text.search(pattern) ;
Logger.log("\n"+start) ;
}
答案 0 :(得分:0)
UrlFetchApp和urllib2之间没有任何关联。 (也许你听到的是关于App Engine上等效的UrlFetch API,虽然我不知道;但是对于Apps Script来说肯定不是这样。)但是,一般来说,任何语言或平台中的类似UrlFetchApp的库都不会执行脚本在页面中(即使JavaScript自己的XmlHttpRequest也没有这样做!)因此观察仍然相关。
在这种情况下,您的问题是该文本不包含/Current Vessel Schedule/
,因为如果您查看该页面的来源,您会看到这些单词之间不仅有一个空格,而是大量的空格包括换行符。你没有在可见页面中看到它,但它在HTML代码中,这是你从UrlFetchApp获得的。
要完成这项工作,您需要将脚本更改为/Current\s*Vessel\s*Schedule/
。这是完整的例子:
function test_date() {
var url = UrlFetchApp.fetch('http://www.portofhueneme.org/home.php') ;
var text = url.getContentText() ;
var pattern = /Current \s*Vessel\s*Schedule/
var start = text.search(pattern) ;
Logger.log(start) ;
}