代理无头浏览器身份验证
wangtao 2021-06-28 puppeteer proxy
# 一.代理无头浏览器
# 1.参考链接
How to make headless Chrome and Puppeteer use a proxy server with authentication (opens new window)
# 2.npm包 proxy-chain
# 2.1 github链接: proxy-chain HTTP proxy server for Node.js (opens new window)
npm链接:proxy-chain (opens new window)
# 2.2 puppeteer 代理Url
Parses and validates a HTTP proxy URL. If the proxy requires authentication, then the function starts an open local proxy server that forwards to the proxy. The port is chosen randomly.
The function takes an optional callback that receives the anonymous proxy URL. If no callback is supplied, the function returns a promise that resolves to a String with anonymous proxy URL or the original URL if it was already anonymous.
The following example shows how you can use a proxy with authentication from headless Chrome and Puppeteer (opens new window).
anonymizeProxy(proxyUrl, callback)
const puppeteer = require('puppeteer');
const proxyChain = require('proxy-chain');
(async() => {
const oldProxyUrl = 'http://bob:password123@proxy.example.com:8000';
const newProxyUrl = await proxyChain.anonymizeProxy(oldProxyUrl);
// Prints something like "http://127.0.0.1:45678"
console.log(newProxyUrl);
const browser = await puppeteer.launch({
args: [`--proxy-server=${newProxyUrl}`],
});
// Do your magic here...
const page = await browser.newPage();
await page.goto('https://www.example.com');
await page.screenshot({ path: 'example.png' });
await browser.close();
// Clean up
await proxyChain.closeAnonymizedProxy(newProxyUrl, true);
})();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23