Google应用程序脚本从混乱的html解析表
我想创建一个脚本,用于下载html、解析表格并将其保存到电子表格中。我一直在下载和解析 表的Xpath是: /html/body/table/tbody/tr[5]/td/table/tbody/tr/td[2]/table 目前我一直在解析XpathGoogle应用程序脚本从混乱的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 =
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
甚至不想解析它。你能更具体地说明一下你是如何被卡住的吗?您显示的代码-是否会引发错误?它是否给出了错误的结果?到目前为止还可以,但你只是不知道如何得到第五个孩子?