尝试获取表格单元格值时出错

时间:2015-08-10 14:04:11

标签: javascript html web-scraping html-table

我试图从this website创建一个IP地址和端口号数组。 但问题是我收到了错误

  

TypeError:table.rows [i] .cells [0] .getElementsByTagName(...)[0]未定义

这是我的代码:

var table = document.getElementsByClassName('DataGrid')[0];
var n = table.rows.length;
console.log(n);
var list="";

for(var i=1;i<n;i++){

    //var ip = table.rows[i].cells[1].innerHTML;
    var port = table.rows[i].cells[0].getElementsByTagName("a")[0].innerHTML; // error here
    //list+="{"+ip+","+port+"}";

}

第一个单元格值模式如下所示。

<td><script type="text/javascript">IPDecode("")</script><a href="http://www.freeproxylists.net/1.179.183.85.html">1.179.183.85</a></td>

所以我认为我做得对。我在做一些愚蠢的错误吗?

注意:我调试并且已经发现有些行没有第二个单元格,但问题是我收到错误。我没有得到至少一个预期长度的输出。见图:

enter image description here

1 个答案:

答案 0 :(得分:1)

此表的某些行包含添加内容,而不是遵循您尝试获取的行(单元格(a))结构。每当你得到get...By...的结果时,你应该检查它是否为空,如果只是跳过continue的循环。