我正在使用Google Apps脚本,但遇到了一些困难。
我正在尝试从网站中的特定单词中自动获取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
。
答案 0 :(得分:0)
通常,DOM
解析器会查找tag
内容而不是HTML
内容。
为此,您将必须构建文本解析器。由于HTML
是结构化的,因此很容易从其内容开始解析<a/>
标记。
为简单起见,我假设您要获取的给定HTML
内容是唯一的。
以下是Apps脚本中此类解析器的示例:
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);
}