使用 casper.evaluate() 在 casperjs 上抓取 table 的更好方法
Better ways to scraping table on casperjs using casper.evaluate()
我试图抓取一个 html(只使用 table 没有 ID 作为结构> 并尝试获取每个值但失败了,我必须使用 findAll 函数但它接缝得到一个空值。
下面是我在第二层得到的table数据。
<tbody><tr bgcolor="#FFCC66" valign="top">
<td><b>No</b></td>
<td><b><a href="search.php?></a></font></b></td>
<td><b><a href="search.php?>Prize</a></font></b></td>
<td>.....
<tr/>
<tbody/>
下面是我试图在 casper.evaluate()
中应用的代码,但它是 return null
但不是我需要的数据。
var verbs = casper.evaluate(function () {
//First layer to peal off all table and added in map to get which table i wanna to.
var map = [].map.call(__utils__.findAll('table table'), function (e) { return e.innerHTML; });
//map[12] is the table contain multiple tr where i wish to get the value out of td between each tr.
var data = map[12];
// var newdata = '<html>\n<table>\n'+data+'\n</table>\n</html>';
var mapout = [].map.data(__utils__.findAll('tbody tr'), function (e) { return e.innerHTML; });
return mapout;
});
如果您想要所有行(我猜是这样),这应该是一种更简单的获取方式:
var rows = casper.evaluate(function() {
return document.querySelectorAll("table tbody tr");
});
之后您可以遍历所有行。
我试图抓取一个 html(只使用 table 没有 ID 作为结构> 并尝试获取每个值但失败了,我必须使用 findAll 函数但它接缝得到一个空值。
下面是我在第二层得到的table数据。
<tbody><tr bgcolor="#FFCC66" valign="top">
<td><b>No</b></td>
<td><b><a href="search.php?></a></font></b></td>
<td><b><a href="search.php?>Prize</a></font></b></td>
<td>.....
<tr/>
<tbody/>
下面是我试图在 casper.evaluate()
中应用的代码,但它是 return null
但不是我需要的数据。
var verbs = casper.evaluate(function () {
//First layer to peal off all table and added in map to get which table i wanna to.
var map = [].map.call(__utils__.findAll('table table'), function (e) { return e.innerHTML; });
//map[12] is the table contain multiple tr where i wish to get the value out of td between each tr.
var data = map[12];
// var newdata = '<html>\n<table>\n'+data+'\n</table>\n</html>';
var mapout = [].map.data(__utils__.findAll('tbody tr'), function (e) { return e.innerHTML; });
return mapout;
});
如果您想要所有行(我猜是这样),这应该是一种更简单的获取方式:
var rows = casper.evaluate(function() {
return document.querySelectorAll("table tbody tr");
});
之后您可以遍历所有行。