从网页的源代码中获取href



我刚开始学习谷歌应用程序脚本,遇到了一些困难。

我正在尝试从网站中的特定单词中自动获得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正则表达式

最新更新