2014-02-14 47 views
1

摘要: 如何編寫正則表達式的谷歌應用程序腳本,將fwtch的所有鏈接錨從HTML谷歌企業應用套件+ HTML +正則表達式獲取所有鏈接錨

我的任務: 我GoogleSpreadsheet與網址,其中鏈接到我的網站是(網站管理員 - >鏈接到我 - >出口)。 我需要錨履帶(使用谷歌應用程序腳本)來查看垃圾鏈接垃圾郵件。

實現(我能做些什麼):

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. 如何編寫正則表達式爲以只返回
  2. 如何迫使它返回所有符合要求的鏈接(現在只有先返回,althoug用於關鍵 /g)的錨
  3. 如何inbuild在正則表達式變量的「鏈接」 - 它沒有 報價來做到這一點。但我只需要查看僅鏈接到我的網站的鏈接
+0

你可以看到樣品https://docs.google.com/spreadsheet/ccc?key=0Ap5D58-gT2y7dC1IN1JtTUpzcG5PeElvQnM3SzFWUHc&usp=docslist_api#gid=0 – GlobeCore

回答

0

儘管您可能可以對某些方案進行硬編碼,但不會涵蓋一般情況。如果你不相信我問這個傢伙:RegEx match open tags except XHTML self-contained tags

+0

很好的建議。 但它也表明框架應該有powerfool html解析工具。 我試過 - var html = UrlFetchApp.fetch(url).getContentText(); var doc = XmlService.parse(html); var html = doc.getRootElement(); 它返回在實際頁面上使用的無效xhtml的錯誤 另外我嘗試過: var doc = Xml.parse(page,true); var body = doc.html.body; var a = body.getElements(「a」); a = a.getText(); return a; 它返回沒有erros,但仍然不爲我工作 這就是爲什麼我嘗試與正則表達式 - 至少工作 – GlobeCore

+0

Html一般不是有效的XML。 –

相關問題