Puppeteer自动化:使用JavaScript定制PDF下载

时间:2024-10-09 08:52:38
const puppeteer = require('puppeteer'); // 亿牛云 爬虫代理配置 const proxyConfig = { domain: 'your_proxy_domain', // 代理IP提供商的域名 port: 'your_proxy_port', // 代理端口 username: 'your_username', // 用户名 password: 'your_password' // 密码 }; // 自定义的User-Agent和Cookie const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'; const cookie = [{ 'name': 'example_cookie', 'value': 'cookie_value', 'domain': '.example.com', 'path': '/' }]; (async () => { // 启动带有代理的浏览器实例 const browser = await puppeteer.launch({ headless: true, // 以无头模式运行 args: [ `--proxy-server=${proxyConfig.domain}:${proxyConfig.port}` // 设置代理IP ] }); const page = await browser.newPage(); // 设置代理认证 await page.authenticate({ username: proxyConfig.username, password: proxyConfig.password }); // 设置User-Agent await page.setUserAgent(userAgent); // 设置Cookie await page.setCookie(...cookie); // 导航到目标网页 await page.goto('https://www.example.com', { waitUntil: 'networkidle2' }); // 生成PDF文件 await page.pdf({ path: 'output.pdf', // 输出PDF文件的路径 format: 'A4', // 设置纸张格式 printBackground: true, // 是否打印背景 displayHeaderFooter: false // 隐藏页眉和页脚 }); console.log('PDF生成成功!'); // 关闭浏览器 await browser.close(); })();