【问题标题】:Google App Script parse table from messed htmlGoogle App Script 从混乱的 html 解析表
【发布时间】:2013-09-08 08:42:54
【问题描述】:

我想创建一个脚本来下载 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);
}

【问题讨论】:

  • 查看stackoverflow.com/questions/18241029/… 关于<tbody/> 标签(例如,外部表肯定没有任何标签)。如何共享一个示例电子表格文档供我们使用(例如,共享为只读 URL)。顺便说一句,HTML 被严重破坏,以至于 Google Spreasheet 的 ImportXML 甚至都不想解析它。
  • 您能否更具体地说明您是如何陷入困境的?您显示的代码 - 它会引发错误吗?它会给出错误的结果吗?到目前为止还可以,但您只是不知道如何获得第 5 个<tr> 孩子?

标签: html parsing xpath google-apps-script


【解决方案1】:

我不知道这是否会有所帮助,这是我的表格解析代码的sn-p:

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>

这就是我解析它的方式:

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];
      }
    }
  }
}

干杯,肖恩

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多