Google Apps + HTML + Regex会获取所有链接锚点

时间:2014-02-14 20:14:21

标签: regex xml-parsing google-apps-script html-parsing

要点: 如何为谷歌应用程序脚本编写regexp,它将填充html链接的所有锚点

我的任务: 我有带有URL的GoogleSpreadsheet,其中指向我网站的链接(webmaster->链接到我 - > export)。 我需要锚定爬虫(使用谷歌应用程序脚本)来查看whick链接是垃圾邮件。

实现(我能做什么):

function doGetLinks(url, link, encoding) 
{
  var encoding = "windows-1251";
  Utilities.sleep(1000);

  var page = UrlFetchApp.fetch(url).getContentText(encoding); 
  var matched = page.match(/<a\s+(?:[^>]*?\s+)?href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+)).*<\/a>/gim);

  var amt = "$0";
  if (matched != null)
  {

    for (var i in matched) 
    {
      var anchor = matched[i];        
      amt = anchor + " | ";     
   }        

  }

  return amt;
}

如何看待它:

问题(我不能):

  1. 如何编写regexp for仅返回锚点
  2. 如何强制它返回所有匹配的链接(现在只返回第一个,而是键 / g被使用)
  3. 如何在regexp中建立变量'link' - 它没有 引用来做到这一点。但我只需要看到链接到我的网站

1 个答案:

答案 0 :(得分:0)

虽然您可能能够对某些场景进行硬编码,但您不会涵盖一般情况。如果你不相信我问这个人:RegEx match open tags except XHTML self-contained tags