web-scraping - 从 page.evaluate 输出控制台日志到本地终端?
问题描述
如何将控制台日志从 page.evaluate 输出到本地终端?
await page.evaluate(() => {
console.log("test"); // <-- I want this message to show in my local terminal
我在 MacOS 计算机上本地运行我的代码。
我在 github 问题中找到的以下解决方案无效:
解决方案 1
const browser = await puppeteer.launch({
'args': ['--disable-dev-shm-usage', '--disable-software-rasterizer'],
dumpio: true
});
// output:
// ERROR:gpu_process_transport_factory.cc(967)] Lost UI shared context.
解决方案 2
const browser = await puppeteer.launch({
'args': ['--disable-dev-shm-usage', '--disable-software-rasterizer']
});
page.on('console', msg => {
for (let i = 0; i < msg.args.length; ++i)
console.log(`${i}: ${msg.args[i]}`);
});
// output:
// nothing
解决方案
我自己刚开始使用 Puppeteer。无法立即弄清楚,但在尝试了一些事情之后,这对我有用。
const names = await page.evaluate(() => {
let names = document.querySelectorAll("#lnkBEName");
console.log(names);
return names;
})
console.log(names);
然后功能块内的console.log不起作用。但是,块外的最后一行有效。希望这可以帮助某人。
推荐阅读
- python - Panda3D:名称'self'未定义|| 名称“worldNP”未定义
- mpi - MPI 中的变量使用
- python-3.x - 如何从 Odoo 13 中的导入按钮添加弹出窗口?
- jenkins - Jenkins 流水线阶段不会从我们的存储库下载工件
- python - 如何使用 re.findall 只找到负数和正数?
- javascript - 无法在 reactjs 中获取导航栏内联
- angular - 如何使用具有泛型类型的静态属性并有意义?
- ruby - 无法激活 watir-screenshot-stitch-0.7.4,因为 rubyzip-2.3.0 与 rubyzip (~> 1.2) 冲突 (Gem::ConflictError)
- javascript - javascript async await 转换为 promise
- assembly - 在 NASM 中定义一系列字节时,“操作数 1 后应有逗号”?