Puppeteer自动化:使用JavaScript定制PDF下载
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();
})();