Google应用程序脚本从混乱的html解析表

Google应用程序脚本从混乱的html解析表,html,parsing,xpath,google-apps-script,Html,Parsing,Xpath,Google Apps Script,我想创建一个脚本,用于下载html、解析表格并将其保存到电子表格中。我一直在下载和解析 表的Xpath是: /html/body/table/tbody/tr[5]/td/table/tbody/tr/td[2]/table 目前我一直在解析Xpath function fetchIt() { var fetchString="http://www.zbranebrymova.com/index.php?s_lev=22&type=nabku*signa" var response =

我想创建一个脚本,用于下载html、解析表格并将其保存到电子表格中。我一直在下载和解析

表的Xpath是:

/html/body/table/tbody/tr[5]/td/table/tbody/tr/td[2]/table

目前我一直在解析Xpath

function fetchIt() {
var fetchString="http://www.zbranebrymova.com/index.php?s_lev=22&type=nabku*signa"
var response = UrlFetchApp.fetch(fetchString);

var xmlDoc = Xml.parse(response.getBlob().getDataAsString(),true);
var b = xmlDoc.getElement().getElement("body").getElement("table") ;

Logger.log(b);
}

我不知道这是否有用,以下是我的表解析代码片段:

html文件FOO.HTM:

<html>
<head> </head>
<body style="margin-left:10px">
  <table title="">
    <tbody>
      <tr>
        <th align="center" abbr="Sunday">Sun</th>
        <th align="center" abbr="Monday">Mon</th>
      </tr>
      <tr>
        <td align="left"><a title="January 01">1</a>
          <div>Joe,Doe</div>
          <div>Murphy,Jack</div>
        </td>
        <td align="left"><a title="January 02">2</a>
          <div>Carlson,Carl</div>
          <div>Guy,Girl</div>
          <div>Lenin,Vladimir</div>
        </td>
      </tr>
    </tbody>
  </table>
</body>
<html>

太阳
周一
1.
乔,多伊
墨菲,杰克
2.
卡尔森,卡尔
男孩,女孩
列宁,弗拉基米尔
我就是这样分析的:

function foo() {
  var page = UrlFetchApp.fetch('foo.htm');
  var rows = Xml.parse(page,true).getElement()
      .getElement("html")
      .getElement("body")
      .getElement("table")
      .getElement("tbody")
      .getElements("tr");

  for (var ii = 0; ii < rows.length; ii++) {
    var cols = rows[ii].getElements("td");
    for (var jj = 0; jj < cols.length; jj++) {
      var divs = cols[jj].getElements("div");
      for (var kk = 0; kk < divs.length; kk++) {
        var div = divs[kk];
      }
    }
  }
}
函数foo(){
var page=UrlFetchApp.fetch('foo.htm');
var rows=Xml.parse(page,true).getElement()
.getElement(“html”)
.getElement(“主体”)
.getElement(“表”)
.getElement(“tbody”)
.getElements(“tr”);
对于(变量ii=0;ii

干杯,肖恩,我不知道这是否有用,这里是我的表解析代码的一个片段:

html文件FOO.HTM:

<html>
<head> </head>
<body style="margin-left:10px">
  <table title="">
    <tbody>
      <tr>
        <th align="center" abbr="Sunday">Sun</th>
        <th align="center" abbr="Monday">Mon</th>
      </tr>
      <tr>
        <td align="left"><a title="January 01">1</a>
          <div>Joe,Doe</div>
          <div>Murphy,Jack</div>
        </td>
        <td align="left"><a title="January 02">2</a>
          <div>Carlson,Carl</div>
          <div>Guy,Girl</div>
          <div>Lenin,Vladimir</div>
        </td>
      </tr>
    </tbody>
  </table>
</body>
<html>

太阳
周一
1.
乔,多伊
墨菲,杰克
2.
卡尔森,卡尔
男孩,女孩
列宁,弗拉基米尔
我就是这样分析的:

function foo() {
  var page = UrlFetchApp.fetch('foo.htm');
  var rows = Xml.parse(page,true).getElement()
      .getElement("html")
      .getElement("body")
      .getElement("table")
      .getElement("tbody")
      .getElements("tr");

  for (var ii = 0; ii < rows.length; ii++) {
    var cols = rows[ii].getElements("td");
    for (var jj = 0; jj < cols.length; jj++) {
      var divs = cols[jj].getElements("div");
      for (var kk = 0; kk < divs.length; kk++) {
        var div = divs[kk];
      }
    }
  }
}
函数foo(){
var page=UrlFetchApp.fetch('foo.htm');
var rows=Xml.parse(page,true).getElement()
.getElement(“html”)
.getElement(“主体”)
.getElement(“表”)
.getElement(“tbody”)
.getElements(“tr”);
对于(变量ii=0;ii

干杯,肖恩

看看关于
标签的内容(例如,外桌绝对没有任何标签)。如何共享一个示例电子表格文档供我们使用(例如,共享为只读URL)。顺便说一句,HTML是如此糟糕,以至于Google Spreasheet的
ImportXML
甚至不想解析它。你能更具体地说明一下你是如何被卡住的吗?您显示的代码-是否会引发错误?它是否给出了错误的结果?到目前为止,它是否正常工作,但您只是不知道如何获得第五个
子项?请查看有关
标记的信息(例如,外部表肯定没有任何标记)。如何共享一个示例电子表格文档供我们使用(例如,共享为只读URL)。顺便说一句,HTML是如此糟糕,以至于Google Spreasheet的
ImportXML
甚至不想解析它。你能更具体地说明一下你是如何被卡住的吗?您显示的代码-是否会引发错误?它是否给出了错误的结果?到目前为止还可以,但你只是不知道如何得到第五个孩子?