我知道这是一个菜鸟问题,但是我想知道何时使用page.evaluate
我也知道文档存在,但我仍然不明白
有人用木偶创建刮板时,有人可以解释如何以及何时使用此功能吗?
答案 0 :(得分:2)
首先,重要的是要了解有两个主要环境:
当您试图通过传递函数并返回<
page.evaluate()
<
{{来寻求直接在页面DOM环境中与页面交互时,请使用Promise
3}} >>
解析为所传递函数的返回值。
否则,如果您不使用page.evaluate()
,那么您将在Node.js(Puppeteer)环境中将元素作为Serializable
对象来处理。
用法示例:
const example = await page.evaluate( () =>
{
const elements = document.getElementsByClassName( 'example' );
const result = [];
document.title = 'New Title';
for ( let i = 0; i < elements.length; i++ )
{
result.push( elements[i].textContent );
}
return JSON.stringify( result );
});
请参见下面的简化图: