2016-07-01 18 views
0

Ich versuche, ein Google Sheets-Skript zu erstellen, von dem ich höre, dass es komplettes Javascript ist, wie mir gesagt wurde. Ich versuche nur, eine Liste von Aufgaben zu erstellen, die für einen Gegenstand in einem Online-Spiel relevant sind, indem ich den HTML-Code in der Tabelle analysiere.Google Spreadsheet Pushing to Array

Beispiel: http://everquest.allakhazam.com/db/item.html?item=14295

Ideale in diesem Fall sollte es über die 4 Questnamen, dessen Standort und die Suche ID bringen (die in der URL im Quellcode gefunden werden können). Aber ich versuche im Moment nur die Quest-ID zu ziehen, wie sie unten zu finden ist.

function myFunction(itemid) { 

    var regexp = /quest.html\?quest\=(.*)"/; 
    var page = UrlFetchApp.fetch('http://everquest.allakhazam.com/db/item.html?item=' + itemid).getContentText(); 
    var matches = []; 
    var number = page.match(/<li><a href="\/db\/quest.html\?quest\=(.*)"/); 

for (var i in number) { 
    matches.push(number[i]); 
} 

return matches; 
} 

Aber das Skript scheint nur auf 'Loading ..' hängen und macht nichts. Wenn ich 'return number' direkt hinter der page.match anschließe, wird die erste Quest-ID in Ordnung zurückgegeben. Es scheint also, dass sie mit dem Push-Vorgang auf das Array in Zusammenhang steht, das die Probleme verursacht.

Antwort

0

Es ist besser, nicht zu analysieren HTML als Text. Sie können eine Formel mit importxml Funktion verwenden, um Ihre Daten zu erhalten mit XPath:

=importxml("http://everquest.allakhazam.com/db/item.html?item=14295";"//div[@id='quest']//b|//div[@id='quest']/ul/li/a|//div[@id='quest']/ul/li/a/@href") 
Verwandte Themen