我是puppeteer的新手。我以前使用PhantomJS和CasperJS,但在配置新服务器(freebsd 12)时发现PhantomJS的支持已经消失了,而CasperJS给我带来了分段错误。
我成功地将我的应用程序移植到puppeteer,但遇到了一个问题,即当我想从表中捕获数据时,这些数据似乎是不完整或被截断的。
我需要来自表格的所有信息,但总是得到较少的信息。
我尝试过更小的表格,但结果仍然被截断了。
我不知道console.log
缓冲区是否可以扩展,也不知道是否有更好的方法来获取表中所有td的值。
const data = await page.$$eval('table.dtaTbl tr td', tds => tds.map((td) => {
return td.innerHTML;
}));
console.log(data);
我应该能够获取所有行,但实际上我得到的是这个
[ 'SF xx/xxxx 3-3999 06-01-16',
'Sample text - POLE',
'',
/* tons of other rows (removed by me in this example) <- */
'',
/* end of output */ ... 86 more items ]
我需要其他的86个物品!!! 因为当代码执行时,我要让PHP从stdout中拿到它。
console.log()
行为涉及到直接对象输出,字符串不应被截断,因此console.log((JSON.stringify(data))
就足够了。 - vsemozhebutyconsole.log
有什么优势吗? - Thomas Dondorfconsole.log
代替process.stdout.write
。 - Thomas Dondorfconsole.log()
输出的颜色并同时控制数据截断的方式,可以使用process.stdout.write(util.inspect(mydata, {colors: true, depth: 5, maxArrayLength: 20}))
。 - Cédric