node+pupeteer使用socks5作为代理协议

socks5协议且携带用户名密码作为代理访问固定网站

背景:我没办法改变socks5的协议,也没办法让他不需要账户密码,项目环境是puppeteer+chromium,chromiun不支持socks5协议
用Node的proxy-chain转发socks5(亲测可用)

核心思想
你在本地(或服务器上)起一个 HTTP 代理网关,
它内部把 Chromium 发来的 HTTP 请求转发到 SOCKS5(带认证)。
这样 Puppeteer 就能“间接”用 SOCKS5 认证代理。

  1. 安装proxy-chain
npm install proxy-chain
  1. 创建代理转发服务
// proxy-server.ts
import { ProxyChain } from 'proxy-chain';

export async function createProxyServer() {
  const server = new ProxyChain.Server({
    port: 3128, // 本地 HTTP 代理端口
    prepareRequestFunction: ({ request }) => {
      return {
        upstreamProxyUrl: 'socks5://username:password@甲方给的代理IP:端口',
      };
    },
  });

  await server.listen();
  return server;
}

  1. 使用
	const proxyServer = await createProxyServer();
  const browser = await puppeteer.launch({
    headless: true,
    args: [
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--proxy-server=http://127.0.0.1:3128',
    ],
  });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值