• Puppeteer动态代理实战:提升数据抓取效率


    亿牛云爬虫代理.png

    引言

    Puppeteer是由Google Chrome团队开发的一个Node.js库,用于控制Chrome或Chromium浏览器。它提供了高级API,可以进行网页自动化操作,包括导航、屏幕截图、生成PDF、捕获网络活动等。在本文中,我们将重点介绍如何使用Puppeteer实现动态代理,以提高数据抓取效率。

    正文

    设置代理并启动浏览器

    首先,我们需要准备一个可信赖的代理服务器。代理服务器可以是HTTP代理或SOCKS代理,确保代理IP可用,并且支持HTTP/HTTPS协议。我们将使用亿牛云爬虫代理作为示例。

    const puppeteer = require('puppeteer');
    
    (async () => {
      // 代理服务器信息 亿牛云爬虫代理加强版
      const proxyHost = "www.16yun.cn";
      const proxyPort = "5445";
      const proxyUser = "16QMSOML";
      const proxyPass = "280651";
    
      // 构建带有用户名和密码的代理服务器URL
      const proxyUrl = `http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort}`;
    
      // 设置Puppeteer使用代理
      const browser = await puppeteer.launch({
        args: [
          '--proxy-server=' + proxyUrl, // 使用完整的代理URL
          // 其他需要的启动参数...
        ]
      });
    
      const page = await browser.newPage();
    
      // 接下来添加页面导航和操作的代码...
      // 任务完成后关闭浏览器
      await browser.close();
    })();
    
    导航到目标网页
    await page.goto('https://example.com'); // 替换为实际的URL
    
    等待图片加载完成
    await page.waitForSelector('img');
    
    抓取图片资源链接
    const imageSrcs = await page.evaluate(() => {
      const images = document.querySelectorAll('img');
      const srcs = Array.from(images).map(img => img.src);
      return srcs;
    });
    
    下载图片资源
    const downloadImages = async (src) => {
      const filename = src.split('/').pop();
      const path = `./images/${filename}`;
      await page.download(src, { path: path });
      console.log(`图片下载成功:${filename}`);
    };
    
    for (let src of imageSrcs) {
      await downloadImages(src);
    }
    

    结论

    通过在Puppeteer中配置动态代理,可以有效地绕过网站的反爬虫机制,提升抓取信息的效率和稳定性。本文详细介绍了如何使用爬虫代理服务配置代理IP,并通过实例代码展示了具体的实现方法。

  • 相关阅读:
    (二十二)Flask之上下文管理第三篇【收尾—讲一讲g】
    约瑟夫环问题
    【云原生】Prometheus Pushgateway使用详解
    功能化 1,2,4,5-四嗪/3,6-二氨基 -1,2,4,5-四嗪修饰纳米的相关内容
    uniapp 请求接口的方式
    [开题报告]flask框架行走的历史文博课(python+程序+论文)
    微服务架构
    OpenCV 学习文章记录
    如何在 Linux 上部署 RabbitMQ
    Python 环境搭建,集成开发环境IDE: PyCharm
  • 原文地址:https://blog.csdn.net/ip16yun/article/details/140433984