从 HTML 标记中提取数据<a>



我试图从包含帐户数据的网页中提取数据。在帮助下,我设法从ID属性和文本中提取了一些信息,但仍然无法提取其他属性。我需要提取类,Codigo和Nombre除了我已经得到的信息。在我的代码中,Class列come返回'Undefined'。

' ' '

var x = document.querySelectorAll("a");
var myarray = []
function isNumeric(str) {
if (typeof str != "string") return false 
return !isNaN(str) && 
!isNaN(parseFloat(str)) 
}
for (var i=0; i<x.length; i++){
var nametext = x[i].textContent;
var cleantext = nametext.replace(/s+/g, ' ').trim();
var cleanlink = x[i].id;
if(isNumeric(cleanlink)){
var classid = x[i].class
myarray.push([cleantext,classid,cleanlink]);// lots of other stuff on page so only want 
}                                               // items with numeric id
};
function make_table() {
var table = '<table><thead><th>Name</th><th>Class</th><th>Id</th></thead><tbody>';
for (var i=0; i<myarray.length; i++) {
table += '<tr><td>'+ myarray[i][0] + '</td><td>'+ myarray[i][1]   +'</td><td>'+myarray[i][2]+'</td></tr>';
};

var w = window.open("");
w.document.write(table); 
}
make_table()
HTML sample from Web page

<tr style="display:none;">
<td class="text-center" style="color:#116eff;font-size:11px;">
<span class="glyphicon glyphicon-plus" onclick="PlanCuenta.toggleGrupo(this);" style="cursor:pointer;">
</span>
</td>
<td class="pad-cuenta" style="padding-left:105px;font-weight: bold;">
<a class="cuenta-group" codigo="1.1.4.3" nombre="Anticipo a Proveedores" data-placement="right" data-popover-content="#popover_content_wrapper" data-title="Menú Opciones" data-trigger="focus" desc="1.1.4.3 Anticipo a Proveedores" href="javascript:void(0);" id="619105" padre="619102" rel="" style="color:black;">
1.1.4.3 Anticipo a Proveedores
</a>
</td>

<td style="text-align:right;color:black;" width="160">
$565.62
</td>

</tr>

<tr style="display:none;">
<td class="text-center" style="color:#116eff;font-size:11px;">
<span class="" onclick="PlanCuenta.toggleGrupo(this);" style="">
</span>
</td>
<td class="pad-cuenta" style="padding-left:140px;font-style: italic;">
<a class="cuenta" codigo="1.1.4.3.1" nombre="Narvaez Maria, Antic." data-placement="right" data-popover-content="#popover_content_wrapper" data-title="Menú Opciones" data-trigger="focus" desc="1.1.4.3.1 Narvaez Maria, Antic." href="javascript:void(0);" id="903864" padre="619105" rel="" style="color:black;">
1.1.4.3.1 Narvaez Maria, Antic.
</a>
</td>

您需要使用元素的className属性,而不是class,这是一个HTML属性。参考MDN className文档

var x = document.querySelectorAll("a");
var myarray = []
function isNumeric(str) {
if (typeof str != "string") return false
return !isNaN(str) &&
!isNaN(parseFloat(str))
}
for (var i = 0; i < x.length; i++) {
var nametext = x[i].textContent;
var cleantext = nametext.replace(/s+/g, ' ').trim();
var cleanlink = x[i].id;
if (isNumeric(cleanlink)) {
var classid = x[i].className
myarray.push([cleantext, classid, cleanlink]); // lots of other stuff on page so only want 
} // items with numeric id
};
function make_table() {
var table = '<table><thead><th>Name</th><th>Class</th><th>Id</th></thead><tbody>';
for (var i = 0; i < myarray.length; i++) {
table += '<tr><td>' + myarray[i][0] + '</td><td>' + myarray[i][1] + '</td><td>' + myarray[i][2] + '</td></tr>';
};
return table;
}
console.log(make_table());
<tr style="display:none;">
<td class="text-center" style="color:#116eff;font-size:11px;">
<span class="glyphicon glyphicon-plus" onclick="PlanCuenta.toggleGrupo(this);" style="cursor:pointer;">
</span>
</td>
<td class="pad-cuenta" style="padding-left:105px;font-weight: bold;">
<a class="cuenta-group" codigo="1.1.4.3" nombre="Anticipo a Proveedores" data-placement="right" data-popover-content="#popover_content_wrapper" data-title="Menú Opciones" data-trigger="focus" desc="1.1.4.3 Anticipo a Proveedores" href="javascript:void(0);" id="619105" padre="619102" rel="" style="color:black;">
1.1.4.3 Anticipo a Proveedores
</a>
</td>
<td style="text-align:right;color:black;" width="160">
$565.62
</td>
</tr>
<tr style="display:none;">
<td class="text-center" style="color:#116eff;font-size:11px;">
<span class="" onclick="PlanCuenta.toggleGrupo(this);" style="">
</span>
</td>
<td class="pad-cuenta" style="padding-left:140px;font-style: italic;">
<a class="cuenta" codigo="1.1.4.3.1" nombre="Narvaez Maria, Antic." data-placement="right" data-popover-content="#popover_content_wrapper" data-title="Menú Opciones" data-trigger="focus" desc="1.1.4.3.1 Narvaez Maria, Antic." href="javascript:void(0);" id="903864" padre="619105" rel="" style="color:black;">
1.1.4.3.1 Narvaez Maria, Antic.
</a>
</td>
</tr>

最新更新