node使用puppeteer爬取数据
emer 发布于 2023-2-14 18:05 753 次阅读
const puppeteer = require('puppeteer'); (async () => { // 启动浏览器 const browser = await puppeteer.launch({ headless: true, // 默认是无头模式,这里为了示范所以使用正常模式 args: ['--no-sandbox', '--disable-setuid-sandbox'], }) // 控制浏览器打开新标签页面 const page = await browser.newPage() // 在新标签中打开要爬取的网页 await page.goto('https://lininn.cn') // 使用evaluate方法在浏览器中执行传入函数(完全的浏览器环境,所以函数内可以直接使用window、document等所有对象和方法) let data = await page.evaluate(() => { let list = document.documentElement.outerHTML // let res = [] // for (let i = 0; i < list.length; i++) { // res.push({ // name: list[i].getAttribute('data-positionname'), // company: list[i].getAttribute('data-company'), // salary: list[i].getAttribute('data-salary'), // require: list[i].querySelector('.li_b_l').childNodes[4].textContent.replace(/ |\n/g, ''), // }) // } return list }) await page.close(); await browser.close(); console.log(data) })()
//设置宽
await page.setViewport({ width: 1000, height: 500 });
await page.screenshot({ path: path.join(__dirname, 'screenshot.png'), });//模拟设备const iPhone = puppeteer.devices['iPhone XR'];
//添加userAgenthttp://www.wukai.me/2021/05/22/puppeteer-notes/await page.setViewport({ width: 1024, height: 1366 });await page.setUserAgent( 'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1', );