这是一个关于操纵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多个代理,但没有一个在伪造者中工作
这些凭证正是提供给我的,我已经多次检查了。
这就是我得到的:
再次,这是页面的控制台:
为什么会这样?
我多次检查了地址和用户名,密码。除此之外,没有其他错误消息。
答案 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);
});