我刚开始学习谷歌应用程序脚本,遇到了一些困难。
我正在尝试从网站中的特定单词中自动获得href
。我已经有了需要从中提取href
的单词。
它有点像:
function substituir_arquivo(nome,logsheet){
var pagina = UrlFetchApp.fetch("http://www.aaaaaaaa.com/zzz", "site");
var texto = pagina.getContentText()
var local = texto.findText(nome)
var url =
log(logsheet, nome, local, url)
}
在该网页中;nome";是这样的(在这种情况下"nome"=Arquivo(:
<a href="http://www.aaaa.com/zzzzz/file " target="_blank" download=""> Arquivo</a>
我想把这个href
复制到var url
。
解决方案
通常,DOM
解析器查找tag
名称而不是HTML
内容。为了实现这一点,您必须构建您的文本解析器。由于HTML
是结构化的,因此很容易从其内容开始解析<a/>
标签。
代码
为了简单起见,我假设您想要获得的给定HTML
内容是唯一的。
以下是应用程序脚本中这种解析器的示例:
function substituir_arquivo(nome,logsheet){
var pagina = UrlFetchApp.fetch("http://www.aaaaaaaa.com/zzz", "site");
var texto = pagina.getContentText()
var start = text.search(`<a.+>${nome}</a>`)
var end = text.indexOf(nome)
var atag = ""
var url = ""
for (let i = start; i<end; i++) {
atag += html[i];
if (atag.search(`href=".`) > 0) { // When the first character of the href property is reached I will start putting it in a varaible
if(url.length > 0 && html[i] == '"') { // When I hit the next " symbol I'm done so I can exit from the loop.
break;
} else {
url+=html[i];
}
}
}
Logger.log(logsheet, nome, end, url);
}
参考
JS搜索((
JS indexOf((
JS正则表达式