GDocs ImportHTML/XML没有得到正确的数据

问题描述:

我有一个简单的Google Spreadsheet的问题。我试图拉入一张桌子,并没有使用ImportHTML运气,它只会拉第一个顶部单元格,并以某种方式复制它。我也尝试过使用XPath Helper来获取正确的XPath的ImportXML,它也不会加载正确的表数据。GDocs ImportHTML/XML没有得到正确的数据

谷歌文档:

https://docs.google.com/spreadsheets/d/1-toAivOhywZuErHK0LB5EADiMu_T9ZNUTgMhqFRBHOU/edit?usp=sharing

什么,我需要的是底部的表在以下站点(ID = 'player_gbs'):

http://www.forge-db.com/us/us18/players/profile/?server=us18&world=Sinerania&id=12497 

Code Snippet

这里这是我迄今为止所尝试的,这也是在GDoc中所代表的。

=ImportHTML(B1, "table", 2) 

返回以下行两次: “伟大的建筑时代拉特FP询价FP FP左24小时+”

=ImportXML(B1, "/html/body/div[@class='wrap']/div[@class='content'][2]/div[@class='b-box']") 

返回:

“GB的在一个新的水平最后24小时显示黄色 背景“Great BuildingEraLvlFPReq。 FPFP Left24h + Great BuildingEraLvlFPReq。 FPFP Left24h +”

思考的问题是,包含在/ DIV的是<thead> and <tfoot> before <tbody>所以我想这个XPath和刚刚获得N/A:

=ImportXML(B1, "/html/body/div[@class='wrap']/div[@class='content'][2]/div[@class='b-box']/div[@id='player_gbs_wrapper']/table[@id='player_gbs']/tbody") 

我相信你的问题是,该表是通过JSON和JavaScript创建。如果查看页面源你会看到这个块...

<script type="text/javascript" class="init"> 
$(document).ready(function() { 
    $('#player_gbs').dataTable({ 
     "aLengthMenu": [[30], ['All']], 
     "processing": true, 
     "serverSide": true, 
     "ajax": "../../getPlayerGBs.php?id=12497&server=us18", 

它告诉我们的数据是从下面的网址来了。 http://www.forge-db.com/us/us18/getPlayerGBs.php?id=12497&server=us18

该URL提供填充表的数据。

该脚本(based off this SO response)将解析来自该提要的数据并将其写入标题为dataImport的工作表。它只获取前两个数据块,您只需扩展循环就可以做更多。

function urlDownload() { 
var dataImport = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('dataImport'); 
var apiPoint = "http://www.forge-db.com/us/us18/getPlayerGBs.php?id=12497&server=us18"; 
var response = UrlFetchApp.fetch(apiPoint); 
var response_json = JSON.parse(response.getContentText()); 
var length = response_json.data.length; 
var a = []; 
for(i=0; i<length; i++){ 
    dataImport.getRange(i+2, 1, 1, 1).setValue(response_json.data[i][0]) 
    dataImport.getRange(i+2, 2, 1, 1).setValue(response_json.data[i][1]) 

} 
} 
+0

非常感谢您的帮助,我甚至没有考虑过,完全合理,您的代码是完美的。再次感谢! – Donny