Puppeteer를 Ubuntu18.04에서 움직이기 위해 snap을 사용해보십시오.

참고


  • snapd 설치 방법 요약 [Ubuntu · Linux Mint · Debian · Fedora 등] | Linux Fan

  • Linux 배포판에 상관없이 작동하는 소프트웨어 패키지 "Snap"

    설치



    deb 시스템
    sudo apt -y install snapd
    # 一覧に表示されない場合は以下
    systemctl daemon-reload
    

    Fedora
    sudo dnf -y install snapd
    sudo systemctl enable --now snapd.socket
    
  • ArchLinux의 경우

  • Node.js 8 설치하기


  • Ubuntu 18.04의 apt에서 설치할 수 있는 nodejs는 version 6
  • 일반적인 Puppeteer 샘플 코드를 실행하려면 버전 8이 필요합니다

  • # nodeという名前のコマンドを検索
    snap search node
    
    # インストール出来るバージョン一覧を確認
    snap info node
    
    # インストール
    sudo snap install --channel=8/stable --classic node
    

    Puppeteer 설치


    npm install puppeteer
    

    test.js
    const puppeteer = require('puppeteer');
    
    (async () => {
      //
      const browser = await puppeteer.launch();
      // profile指定したい場合
      //const browser = await puppeteer.launch({
      //  userDataDir: 'C:\\usrdata\\puppeteer_crawler_profile'
      //});
    
      const page = await browser.newPage();
      // googleを表示
      await page.goto('https://google.com');
      // example.pngに画面キャプチャ保存
      await page.screenshot({path: 'example.png'});
    
      await browser.close();
    })();
    

    실행
    node test.js
    

    크롬 확장



  • DayDream - 브라우저 작업을 기록하여 Puppeteer/Nightmare 작업 스크립트 만들기
  • 크롬 확장




  • 도커


  • puppeteer/troubleshooting.md

  • Dockerfile
    FROM ubuntu:18.04
    
    RUN apt update
    RUN apt install -y \
          curl gnupg chromium-browser fonts-ipafont-gothic
    RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
    RUN apt-get install -y nodejs
    RUN npm install puppeteer
    
    WORKDIR /root
    COPY entrypoint.sh .
    COPY entrypoint.js .
    ENTRYPOINT ["/root/entrypoint.sh"]
    

    entrypoint.sh
    #!/bin/sh
    echo ${URL:-https://google.co.jp}
    echo ${WAIT_SEC:-86400}
    
    while :
    do
      node entrypoint.js
      sleep $WAIT_SEC
    done
    

    entrypoint.js
    const puppeteer = require('puppeteer');
    
    (async () => {
      //
      const browser = await puppeteer.launch({
        args: [
          '--no-sandbox',
        ]
      });
      // profile指定したい場合
      //const browser = await puppeteer.launch({
      //  userDataDir: 'C:\\usrdata\\puppeteer_crawler_profile'
      //});
    
      const page = await browser.newPage();
      // アクセス
      await page.goto(process.env.URL);
      // example.pngに画面キャプチャ保存
      await page.screenshot({path: '/data/example.png'});
    
      await browser.close();
    })();
    

    run.sh
    docker run --rm -it \
     -e URL="http://hogehoge.com" \
     -v $(pwd)/data:/data/ \
     faf1044237d1
    

    좋은 웹페이지 즐겨찾기