我想知道是否可以有一个 .js 文件来打开浏览器实例、创建新页面/选项卡登录到网站(使用用户名/密码)并保持空闲状态。
在第二个 .js 文件中使用文件一个浏览器实例及其页面。
1.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox'],
ignoreDefaultArgs: ["--hide-scrollbars"]
});
const page = await browser.newPage();
const response = await page.goto('https://google.com');
console.log('Browser open in the background (headless)!');
//await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)
2.js
const puppeteer = require('puppeteer');
(async () => {
// instructions on browser instance/page from 1.js ...
})();
Run Code Online (Sandbox Code Playgroud)
\n\n\n爬虫对象保留浏览器实例的状态,并且无论您在何处调用/传递该实例,它都会引用“后台”中的同一个 chromium。如果这太过分了,而您只想使用 puppeteer 连接到已经运行的 chromium,则可以使用 puppeteer.connect 来完成。看看这个:\n 如何将 puppeteer“挂钩”到正在运行的 Chrome 实例/选项卡\xe2\x80\x93 mbit
\n
是的,我想这对我来说太过分了:)。但你发布的链接是我想要的,但有两个问题。
\n\n这是我所拥有的样本。
\n\n// 1.js\n// open chromium, new tab, go to google.com, print browserWSEndpoint, disconnect\nconst puppeteer = require(\'puppeteer\');\n\n(async () => {\n var browser = await puppeteer.launch({headless: false});\n var page = await browser.newPage();\n var response = await page.goto(\'https://google.com\');\n\n var browserWSEndpoint = browser.wsEndpoint();\n console.log(browserWSEndpoint); // prints: ws://127.0.0.1:51945/devtools/browser/6462daeb-469b-4ae4-bfd1-c3bd2f26aa5e\n\n browser.disconnect();\n})();\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\n// 2.js\n// connect to the open browser with the browserWSEndpoint manualy put in, ... , disconect. \nconst puppeteer = require(\'puppeteer\');\n\n(async () => {\n var browser = await puppeteer.connect({browserWSEndpoint: \'ws://127.0.0.1:51945/devtools/browser/6462daeb-469b-4ae4-bfd1-c3bd2f26aa5e\'});\n\n // somehow use the tab that is open from 1.js (google.com)\n\n await browser.disconnect();\n})();\nRun Code Online (Sandbox Code Playgroud)\n\n我从 console.log 1.js 获取 browserWSEndpoint 字符串。\n效果很好,但我有两个困难。
\n\n1 - 如何使用 1.js 中的变量 browserWSEndpoint,这样我就不必总是将其复制粘贴到 2.js。
\n\n2-如果我在 1.js 上打开一个新页面/选项卡,然后转到 google 并断开连接 (browser.disconnect()),如何在 2.js 上使用该页面/选项卡。
\n| 归档时间: |
|
| 查看次数: |
7203 次 |
| 最近记录: |