puppeteer + nodejs 抓取网页内容

一、配置相关环境

1、下载nodejs

  网址:http://nodejs.cn/download/
  注:我使用的是二进制包 64位。解压后可直接使用

nodejs.png

2、查看node版本信息。

  2.1在命令提示符中进入到nodejs目录下,然后输入 node -v。

版本信息.png

3、安装puppeteer模块。

  3.1puppeteer简单介绍

  Puppeteer是什么
  Puppeteer 是一个Node库, 它提供高级API,通过DevTools Protocol 来控制Chrome 或 Chromium。 Puppeteer 默认运行为headless ,但是可以配置为运行为non-headless 。
  可以做什么
  生成页面截图或PDF
  抓取SPA 并生成预渲染内容(SSR)

  参考:https://www.jianshu.com/p/679f07ba474b

  3.2puppeteer安装(由于本机已经安装过puppeteer就不进行截图)

   1、在windows环境下安装,在命令提示符中,输入命令:npm i --save puppeteer --ignore-scripts,即可安装成功。

  参考:https://jingyan.baidu.com/article/d5c4b52ba71fa0da560dc51d.html

4、chromeium可以下载对应的chromium,一定要和本机的chrome浏览器版本相对应,也可以直接使用本机的chrome浏览器。

二、以抓取京东为例。

const puppeteer = require('puppeteer');

    (async ()=> {

        //  chrome地址
        const chromePath=process.argv[2]
        //传进的将要解析的url网址
        const address=process.argv[3];
     
    const browser = await puppeteer.launch({ignoreHTTPSErrors: true,headless: false,executablePath:chromePath,timeout:60000,args: ['--no-sandbox', '--disable-setuid-sandbox']});

    // 打开新页面
    const page = await browser.newPage();
    
    //等待时间
    var time=25000;

    // 访问
    await page.goto(request_url, {waitUntil: 'domcontentloaded'}).catch(err => console.log(err));
    await page.waitFor(address);

    let content = await page.content()
    console.log(content);


    await browser.close();
})();

执行命令:在cmd中执行 : nodejs路径 puppeteer路径 chrome浏览器路径 http://www.baidu.com

你可能感兴趣的:(puppeteer + nodejs 抓取网页内容)