puppeteer代理的搭建和配置

puppeteer代理的搭建和配置

本文深入探讨了Puppeteer在网络爬虫和自动化测试中的重要角色,着重介绍了如何搭建和配置代理服务器,以优化Puppeteer的功能和性能。文章首先介绍了Puppeteer作为一个强大的Headless浏览器自动化工具的优势和应用场景,然后着重探讨了为Puppeteer配置代理服务器的必要性,以及不同代理类型的选择。接着,文章详细阐述了搭建代理服务器的步骤,包括常见的代理服务器软件选择、配置和设置。最后,通过实例和技巧分享,读者将获得在实际项目中成功使用Puppeteer代理的关键知识和经验。本文旨在为读者提供一份全面指南,使他们能够在使用Puppeteer时灵活运用代理,从而更好地应对网络数据采集和测试挑战

puppeteer代理的搭建

搭建环境:LInux + Docker

代理镜像选择tinyproxy

docker pull dannydirect/tinyproxy

启动容器
tinyproxy有两种模式,1、允许无限制的代理访问 2、允许特定 IP 地址访问代理

#允许无限制的代理访问
docker run -d --name='tinyproxy'  -p 8888:8888 dannydirect/tinyproxy:latest ANY

# 允许特定 IP 地址访问代理
docker run -d --name='tinyproxy' -p 8888:8888 dannydirect/tinyproxy:latest 87.115.60.124

# 允许多个特定 IP 地址访问代理
docker run -d --name='tinyproxy' -p 8888:8888 dannydirect/tinyproxy:latest 10.103.0.0/24 192.168.1.0/24

没有特殊要求直接使用第一个就行了。
查看日志出现下面表示成功
puppeteer代理的搭建和配置_第1张图片除了 dannydirect/tinyproxy,还有一些常见且广泛使用的代理服务器软件。以下是一些比较流行的代理服务器:

Squid Proxy:Squid 是一个功能强大的代理服务器软件,支持 HTTP、HTTPS、FTP 等协议。它是一个高性能的缓存代理服务器,广泛用于代理、缓存和加速 Web 请求。Squid 是开源免费的,可在多种操作系统上运行。

Nginx:Nginx 是一种高性能的 Web 服务器,但它也可以配置为反向代理服务器。通过配置 Nginx,你可以将来自客户端的请求代理到后端服务器,并充当代理服务器的角色。Nginx 是免费开源的,并且在 Web 服务器和代理服务器领域非常流行。

HAProxy:HAProxy 是一个高性能的 TCP/HTTP 负载均衡器和代理服务器。它支持多种负载均衡算法和健康检查,常用于将来自客户端的请求转发到多个后端服务器。HAProxy 也是免费开源的。

Privoxy:Privoxy 是一个用于保护用户隐私和过滤网页内容的非缓存 Web 代理服务器。它允许用户控制代理服务器的行为,并可以过滤广告和其他不良内容。Privoxy 是开源免费的,并适用于多个平台。

Tinyproxy:除了 dannydirect/tinyproxy,还有其他的 Tinyproxy 变种,例如 tinyproxy/tinyproxy。Tinyproxy 是一个轻量级的、高性能的匿名 HTTP/HTTPS 代理服务器。它易于配置和使用,并支持 ACL 和用户认证等功能。

这些代理服务器都有不同的特点和用途,你可以根据自己的需求选择合适的代理服务器。如果你只是需要简单的 HTTP 代理,dannydirect/tinyproxy 或其他 Tinyproxy 变种可能已经足够满足你的需求。如果需要更复杂的功能,如负载均衡、反向代理、缓存等,可以考虑使用 Squid、Nginx 或 HAProxy 等更强大的代理服务器。

puppeteer代理配置

    const proxyIp = '118.31.x.xxx';
    const proxyPort = '8888';
    const proxyUrl = `http://${proxyIp}:${proxyPort}`;
    
    const instance = await puppeteer.launch({
            args: [
                `--proxy-server=${proxyUrl}`
            ]
        });

代理的配置非常简单,就是在浏览器启动是添加参数。

测试

使用配置了代理的puppeteer去使用

await page.goto("https://www.amazon.com/", {waitUntil: 'domcontentloaded', timeout: 60000});

可以看到正常使用

puppeteer代理的搭建和配置_第2张图片

你可能感兴趣的:(javascript)