headless参考链接

  1. 传统爬虫只能爬取JS渲染前的界面,使用puppeteer参考链接加headless chrome,可以模仿浏览器行为将界面渲染后的结果获取到

  2. 阿里也出了一个功能相同的: macaca-puppeteer参考链接

  3. 安装node.js

     cd /root
     wget https://npm.taobao.org/mirrors/node/v8.9.1/node-v8.9.1-linux-x64.tar.gz
     tar -zxvf node-v8.9.1-linux-x64.tar.gz
     mv node-v8.9.1-linux-x64 /usr/local/node
     vim /etc/profile
    
     export PATH=$PATH:/usr/local/node/bin
    
     ESC
     :wq
    
     source /etc/profile
    
  4. 测试安装是否成功

     node -v
     npm  -v
    
  5. 切换为阿里源

     全局安装npm,修改安装源为taobao
     npm config set registry https://registry.npm.taobao.org -g
     npm config get registry
    
  6. 安装依赖

     #依赖
     yum install \
     atk \
     nss \
     gtk3 \
     libXi \
     GConf2 \
     libXext \
     libXtst \
     alsa-lib \
     libXrandr \
     cups-libs \
     libXcursor \
     libXdamage \
     pango.x86_64 \
     libXcomposite \
     libXScrnSaver \
     -y \
    
     #字体
     yum install \
     xorg-x11-utils \
     ipa-gothic-fonts \
     xorg-x11-fonts-misc \
     xorg-x11-fonts-75dpi \
     xorg-x11-fonts-Type1 \
     xorg-x11-fonts-100dpi \
     xorg-x11-fonts-cyrillic \
     -y \
    
  7. 创建项目并安装puppeteer

     useradd www
     mkdir /www
     mkdir /www/test
     chown -R www:www /www
     cd /www/test
     su www
     npm init
     # 这步操作会安装chrome↓(注意,网速不好会报错,结束重新执行即可)
     npm install puppeteer
    
  8. 创建index.js参考链接

     const puppeteer = require('puppeteer');
     (async () => {
         const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
         const page = await browser.newPage();
         await page.goto('https://www.baidu.com');
    
         //界面存为图片
         //await page.screenshot({path: 'test.png'});
    
         //界面存为PDF,大小为A4纸
         //await page.pdf({path: 'test.pdf', format: 'A4'});
    
         //获取渲染完之后的完整界面并控制台输出
         let content = page.content();
         console.log(content);
    
         await browser.close();
     })();
    
  9. 运行index.js

     node index.js
    
  10. 不依赖puppeteer的实现方案参考链接

@耿志环 2012-∞ 冀ICP备17033181号, powered by Gitbook修订: 2018-05-23 16:25:59

results matching ""

    No results matching ""