如何将回调作为变量传递给 puppeteer 中的 page.evaluate?

By simon at 2019-05-16 • 0人收藏 • 16人看过

只是为了代码的组织,我想这样做木偶师..。

{ const browser await puppeter.launch (...) const page await browser.newPage () await page.goto (url) const result await page.evaluate (evaluater) return result } crawler (' https://website.com ',(){ return document.querySelectorAll (...)})

但是我得到下面的错误..。

错误: 计算失败: TypeError: 无法读取未定义的属性"querySelectorAll"

我假设计算器函数实际上被传递给Eval所以我希望下面的方法可以在这种情况下起作用

常量结果等待 page.evaluate (evaluater.toString ())

不过这也不管用。 没有错误消息,但是未定义的被退回。 如果内联移动函数,则返回数据。

有没有什么方法我可以提供一个回调页面,评估不是内联定义的,而是作为变量传入的?

1 个回复 | 最后更新于 2019-05-16
2019-05-16   #1

你的代码看起来不错,它正在我的环境中工作。 你的问题可能来自于木偶表演者版本-让删除节点模块然后重新安装

你的网站什么你想爬虫被禁用了爬虫间谍的一些方式-让测试与另一个网站。

这是我的代码,你可以在你的环境中尝试:

Const puppeteer require ('puppeter') ; async function crawler (url,evaluator){ const browser await puppeter.launch ({ headless: false,}) ; const page await browser.newPage () await

登录后方可回帖

Loading...