pupppeteer-page-proxy每个页面或请求独立使用代理

邵祺
2023-12-01

1 pupppeteer-page-proxy模块简介

puppeteer代理设置方法中介绍了设置代理的几种方式,其中之一是通过拦截请求,再通过http模块转发,给http模块加上代理实现代理设置。pupppeteer-page-proxy[1]nodejs模块就是基于此实现为每个请求或page加代理。其中一些特性如下:

  • 支持每个page或每个请求使用代理。
  • 内部处理cookie。
  • 支持http、https、socks4、socks5 代理。

2 环境准备

需要三个工具:

  • puppeteer 2.1.1
  • pupppeteer-page-proxy 1.2.3
  • nodejs 10+

由于pupppeteer-page-proxy设置代理依赖http-proxy-agent、https-proxy-agent。这两个模块又依赖agent-base。agent-base需要5.0+。而puppeteer2.1.0才将agent-base升级到5.1.1。因此puppeteer版本要使用2.1.1。

pupppeteer-page-proxy发送http请求依赖got[2](一个强大的nodejs http库)。用高版本时got会使用asyn generator因此nodejs版本要升级到10+。否则启动提示语法错误。

3 使用pupppeteer-page-proxy

首先我们为每个请求指定代理。在page.on监听请求,随后通过page proxy发送。以访问百度为例,

 类似资料: