Sum*_*osh 4 javascript node.js google-chrome-devtools puppeteer
我想立即启动一个无头的 Chrome 浏览器,做一些自动化操作,然后在做其他事情之前把它变成可见的。
使用 Puppeteer 是否可以做到这一点,如果可以,你能告诉我怎么做吗?如果不是,是否有任何其他浏览器自动化框架或库可以做到这一点?
到目前为止,我已经尝试了以下但没有奏效。
const browser = await puppeteer.launch({'headless': false});
browser.headless = true;
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
Run Code Online (Sandbox Code Playgroud)
Chrome浏览器只允许要么开始在浏览器中无头或无无头模式。您必须在启动浏览器时指定它,并且在运行时无法切换。
可能的是,启动第二个浏览器并重用第一个浏览器中的 cookie(和任何其他数据)。
您会假设您可以在调用 时重用数据目录puppeteer.launch,但由于存在多个错误(puppeteer repo 中的#1268、#1270),目前这是不可能的。
因此,最好的方法是保存您需要在浏览器实例之间共享的任何 cookie或本地存储数据,并在启动浏览器时恢复数据。然后您第二次访问该网站。请注意,当您重新抓取页面时,网站在 JavaScript 变量方面的任何状态都将丢失。
总结一下,整个过程应该是这样的(对于 headless 到 headfull,反之亦然):
| 归档时间: |
|
| 查看次数: |
1212 次 |
| 最近记录: |