木偶未加载页面-NodeJs

时间:2020-09-07 14:52:35

标签: node.js puppeteer

这是一个关于操纵up的简单程序:

const puppeteer = require('puppeteer');

    async function run() {
       const browser = await puppeteer.launch({
            headless: false,
            
            args:[ `--proxy-server=104.233.50.38:3199`]
        });
        ;
        const page = await browser.newPage();
        await page.authenticate({
                username: 'myusername',
                password: 'mypassword'
            })
            await page.goto('https://google.com')
    };

run();

注意:我已经尝试了10多个代理,但没有一个在伪造者中工作

这些凭证正是提供给我的,我已经多次检查了。

这就是我得到的:

Puppeteer not loading page

再次,这是页面的控制台:

Puppeteer error loading page console view

为什么会这样?

我多次检查了地址和用户名,密码。除此之外,没有其他错误消息。

2 个答案:

答案 0 :(得分:2)

似乎page.authenticate对我也不起作用,相反,您可以使用page.setExtraHTTPHeaders

async function run() {
const browser = await puppeteer.launch({
    ignoreHTTPSErrors: true, 
    args: ['--proxy-server=104.233.50.38:3199']
});
const page = await browser.newPage();
await page.setExtraHTTPHeaders
({'Proxy-Authorization': 'Basic ' + Buffer.from('username:password').toString('base64'),
});
};
 
run();

答案 1 :(得分:0)

您可以使用puppeteer-page-proxy,它非常容易提供用户名和密码验证。它还支持http,https,socks4和socks5代理。 https://github.com/Cuadrix/puppeteer-page-proxy

您可以通过以下方式定义代理:

const proxy = 'http://login:pass@IP:Port';

const proxy = 'socks5://IP:Port';

然后您可以根据请求使用它:

const useProxy = require('puppeteer-page-proxy');
await page.setRequestInterception(true);
page.on('request', req => {
    useProxy(req, proxy);
});