问题标签 [puppeteer-cluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 在用于负载测试的 cron 中使用 puppeteer-cluster 运行 cron 作业的最佳方式
我正在做负载测试我不希望服务器崩溃,当我启动单独的 puppeteer 实例并尝试运行两个查询时,它们每个都从 mysql db 获取 100mb 的数据,当我运行单个 puppeteer 时一切顺利,所以我研究并遇到了 puppeteer-cluster,现在基本上我需要每分钟运行一次 cron,并且每分钟每 cron 的请求数没有限制,那么这里的最佳实践是什么?
选项1:
选项 2:
我目前正在使用选项 2,如果我必须使用选项 1,我无法理解我是否必须无限期地保持浏览器打开,即何时关闭它
- 请注意,每分钟可以有任意数量的项目,没有上限,并且每个项目最多可以持续 1 小时,因为我在那里设置了一些最坏的情况限制,因为请求可以加载大量数据 ~ 250mb(应该是块但我不能改变目前的架构,所以这有时对更大的数据库表没有响应)
javascript - 如何模块化 puppeteer-cluster 代码?
我对这个模块很陌生。我听说它比只使用 puppeteer 更好,因为它可以并行运行任务。无论如何,我需要帮助模块化我的代码。这是 npm 页面中的示例程序:
我想要的是这样的:
main.js 初始化集群
functions.js 有所有的任务
所以我就可以做这样的事情:
而不是在一个文件中做所有事情。我怎么能做这样的事情?
puppeteer - 导航失败,因为浏览器已断开连接
我遇到了以下问题。
这是错误消息:
这是我正在阅读的文档:
我的每项任务都是约 34 秒,所以大多数时候它会失败(30 秒后超时),但偶尔它会成功。
其他 GitHub/Stack Overflow 的答案也提到了await
代码中的缺失也可能导致相同的错误消息。
javascript - Puppeteer-Cluster 不使用 nodeJS 工作者
我在 nodeJS 中以多工作模式使用 puppeteer-cluster,由于某种原因,只有一个工作人员正在打开我定义的并发浏览器的数量。其他的被忽略。我究竟做错了什么?
基本上我为每个工作人员启动了一个具有 2 个浏览器并发的集群,所以我希望它打开工作人员的数量(我定义的 cpu 数量)*每个工作人员 2 个浏览器,但实际上只打开了两个浏览器。
例如:假设我有 8 个内核,所以我要启动 8 个 worker,每个 worker 将启动两个 puppeteer 浏览器,总共 16 个。而不是在 headless: true 模式下调试它时,我看到只打开了两个浏览器。
部门:“puppeteer”:“^5.2.1”,“puppeteer-cluster”:“^0.22.0”
puppeteer - puppeteer 集群 _ 没有沙盒选项在启动时不起作用
这是我在 puppeteer 集群上的配置:
当我尝试在我的主机中运行时出现错误:
错误:无法启动浏览器进程![1014/132057.583562:ERROR:zygote_host_impl_linux.cc(90)] 不支持在没有 --no-sandbox 的情况下以 root 身份运行。请参阅 https://crbug.com/638180。
但根据puppeter cluster的文档,您可以在 puppeteerOptions 中传递puppeteer选项
为什么传递选项不起作用?
puppeteer - puppeteer集群_如何防止关闭页面?
我很高兴找到 puppeteer 集群。这个库使爬行和自动化任务的生活变得轻松。tnx to Thomas Dondorf。
根据 puppeteer 集群的作者所说,当任务完成时页面将立即关闭。顺便说一句,这很好。但是,您需要分页的某些情况如何?
我的用例:我将尝试简要解释一下:
页面上有一些活动,在后台涉及一个套接字,用于将一些数据发送到前面。这个数据改变了圆顶,我需要捕获它。
这是我的代码:
这是页面部分的爬虫逻辑:
我搜索并发现在 js 中我们可以使用mutationObserver捕获 DOM 更改。并尝试了这个解决方案。但也没有工作。页面将因以下错误而关闭:
UnhandledPromiseRejectionWarning:错误:协议错误(Runtime.callFunctionOn):会话关闭。该页面很可能已关闭。
所以我在这里有两个选择:
1.mutationObserver
2.set interval 每 30 秒评估一次页面本身。
但它们不适合我的需要。所以知道如何克服这个问题吗?
javascript - Puppeteer-cluster 关闭浏览器本身
我使用 puppeteer-cluster + node js。我有一些脚本。我是新手
脚本运行到一半,然后结束,不再执行。我一直在寻找一个星期的解决方案,我不明白这是怎么回事。帮帮我,请在此处输入代码
脚本到达第 5 次迭代并结束 ((
node.js - 从监听器异步获取结果
我使用 puppeteer-cluster + node js。我是新来的。我有一些麻烦。我需要从站点获取 XHR 响应。我正在收听页面,但我无法将结果值写入变量。我需要在代码的另一部分使用该值。如何等待函数在侦听器中执行并将结果写入变量?
但是 dataCreation [id] 是不败的。因为我需要等待听众并从中获得结果。我该怎么做?谢谢你。
web-scraping - 如何将数据从多页存储到json?
谢谢你的关注,所以我写了一个小项目来抓取新闻网站并存储它们的主要文本。我尝试了许多解决方案来在我的项目中添加 json 而没有 consol.log 但总是在刮掉它之后只显示一个正文。所以我向你展示我的代码,这样你就可以帮助我如何让 json 包含所有三个新闻。