我要做的是解析&从网页中提取没有所有HTML gunk的电影标题,最终将其保存到电子表格中。我的代码:
function myFunction() {
var url = UrlFetchApp.fetch("http://boxofficemojo.com/movies/?id=clashofthetitans2.htm")
var doc = url.getContentText()
var patt1 = doc.match(/<font face\=\"Verdana\"\ssize\=\"6\"><b>.*?<\/b>/i);
//var cleaned = patt1.replace(/^<font face\=\"Verdana\" size\=\"6\"><b>/,"");
//Logger.log(cleaned); Didn't work, get "cannot find function in object" error.
//so tried making a function below:
String.trim = function() {
return this.replace(/^\W<font face\=\"Verdana\"\ssize\=\"6\"><b>/,""); }
Logger.log(patt1.trim());
}
我对这一切都很陌生(编程和一般的GoogleScripting)我一直在引用w3school.com的JavaScript部分,但很多东西都不适用于Google Scripts。我只是不确定这里缺少什么,我的RegEx错了吗?有没有更好/更快的方法来提取这些数据而不是RegEx?任何帮助都会很棒,感谢阅读!
答案 0 :(得分:2)
虽然尝试从不受您控制的HTML中解析信息总是有点挑战,但有一种方法可以让您更轻松地实现这一目标。
我注意到每个电影页面的标题元素也包含电影标题,如下所示:
<title>Wrath of the Titans (2012) - Box Office Mojo</title>
你可能会更成功地解析标题,因为它可能更稳定。
var url = UrlFetchApp.fetch("http://boxofficemojo.com/movies/?id=clashofthetitans2.htm");
var doc = url.getContentText();
var match = content.match(/<title>(.+) \([0-9]{4}\) -/);
Logger.log("Movie title is " + match[1]);