来自混乱的html的Google App Script解析表

时间:2013-09-04 17:53:50

标签: html parsing xpath google-apps-script

我想创建一个下载html的脚本,解析表并将其保存到SpreadSheet。我坚持下载和解析。

表格的Xpath是:

/ HTML /体/表/ tbody的/ TR [5] / TD /表/ tbody的/ TR / TD [2] /表

目前我一直在解析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);
}

1 个答案:

答案 0 :(得分:1)

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

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];
      }
    }
  }
}
欢呼,肖恩