相关疑难解决方法(0)

Puppeteer - 如何使用本地 IP 地址连接 WSEndpoint?

我有两个用于 puppeteer 自动化的 Node.js 脚本。

1) 启动器.js

此 Puppeteer 脚本启动 Chrome 浏览器并断开与 chrome 的连接,以便可以使用 WSEndpoint 进行连接。

const puppeteer = require('puppeteer');

module.exports = async () => {
    try {
        const options = {
            headless: false,
            devtools: false,
            ignoreHTTPSErrors: true,
            args: [
                `--no-sandbox`,
                `--disable-setuid-sandbox`,
                `--ignore-certificate-errors`
            ]
        };
        const browser = await puppeteer.launch(options);
        let pagesCount = await browser.pages();
        const browserWSEndpoint = await browser.wsEndpoint();
        // console  WSEndPoint say : "ws://127.0.0.1:42207/devtools/browser/dbb2525b-ce44-43c2-a335-ff15d0306f36"
        console.log("browserWSEndpoint----- :> ", browserWSEndpoint);
        await browser.disconnect();
        return browserWSEndpoint;
    } catch (err) {
        console.error(err);
        process.exit(1); …
Run Code Online (Sandbox Code Playgroud)

google-chrome node.js google-chrome-headless puppeteer

8
推荐指数
1
解决办法
8750
查看次数

使用来自另一个容器的容器化 chrome 二进制文件运行 puppeteer

我希望我的代码使用 puppeteer 在一个容器中运行,并使用(可能通过“executablePath”启动参数?)来自另一个容器的 chrome 二进制文件。这可能吗?有什么已知的解决方案吗?

使用案例:

工作代码在多个 k8 pod(作为容器)中运行。“有时”(可能经常或不经常)工作人员需要使用 puppeteer 运行代码。我不想让 docker 变得巨大且受限,因为 puppeteer/chrome 容器是(1.5 GB,如果我没记错的话),我只想从另一个正在运行的容器为我的代码提供所需的二进制文件

注意:这不是关于容器化 puppeteer 的问题,我知道这是一种可能性

node.js puppeteer

6
推荐指数
1
解决办法
3074
查看次数

如何在任何Web浏览器中运行Puppeteer代码?

我正在尝试使用Puppeteer进行一些Web抓取,并且需要将其值检索到我正在构建的网站中。

我试图将Puppeteer文件加载到html文件中,就好像它是JavaScript文件一样,但是我一直收到错误消息。但是,如果我在cmd窗口中运行它,则效果很好。

Scraper.js:

getPrice();
function getPrice() {
    const puppeteer = require('puppeteer');
    void (async () => {
        try {
            const browser = await puppeteer.launch()
            const page = await browser.newPage()              
            await page.goto('http://example.com') 
            await page.setViewport({ width: 1920, height: 938 })        
            await page.waitForSelector('.m-hotel-info > .l-container > .l-header-section > .l-m-col-2 > .m-button')
            await page.click('.m-hotel-info > .l-container > .l-header-section > .l-m-col-2 > .m-button')
            await page.waitForSelector('.modal-content')
            await page.click('.tile-hsearch-hws > .m-search-tabs > #edit-search-panel > .l-em-reset > .m-field-wrap > .l-xs-col-4 > .analytics-click')
            await page.waitForNavigation();
            await page.waitForSelector('.tile-search-filter > .l-display-none')
            const …
Run Code Online (Sandbox Code Playgroud)

javascript node.js web-scraping puppeteer

2
推荐指数
1
解决办法
3519
查看次数