从网页的源代码获取href

时间:2020-09-13 05:02:50

标签: javascript google-apps-script href

我正在使用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

1 个答案:

答案 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); 
}

参考

JS search()

JS indexOf()

JS regex

相关问题