1. インストール
  2. ヘッドレスでの動作確認
    • トラブル

    CentOS7にGoogle Chromeをインストールします。

    インストール

    Google Chromeの安定版をrpmからインストールします。

    $ sudo yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

    または、 以下の内容で /etc/yum.repos.d/google-chrome.repo を作成して

    [google-chrome]
    name=google-chrome
    baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
    enabled=1
    gpgcheck=1
    gpgkey=https://dl.google.com/linux/linux_signing_key.pub
    以下を実行してyumでインストールします。
    $ sudo yum install google-chrome-stable

    インストールが完了したら、バージョンを確認しておきます。2018年7月時点では以下のようになりました。

    $ google-chrome --version
    Google Chrome 67.0.3396.99
    インストール先は、以下のようになっていました。
    $ which google-chrome
    /usr/bin/google-chrome
    
    $ ls -l /usr/bin/google-chrome
    lrwxrwxrwx 1 root root 31  7月 10 21:22 /usr/bin/google-chrome -> /etc/alternatives/google-chrome

    • 日本語フォント

    • 日本語フォントが無いとエラーになる場合があるようなのでインストールします。

      $ sudo yum install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts

    ヘッドレスでの動作確認

    インストールが正常に完了したら、ヘッドレスでアクセスしてみます。 ヘッドレスの場合はオプションに"--headless"を指定します。 また正しくアクセスできたか確認するため、取得HTMLをダンプするオプションの"--dump-dom"を指定します。

    http://example.com/ にアクセスして、以下のようになれば成功です。 エラーメッセージが表示されていますが、とりあえずアクセスできているので無視します。

    $ google-chrome --headless --dump-dom http://example.com/
    [0710/221658.627014:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context.
    <!DOCTYPE html>
    <html><head>
        <title>Example Domain</title>
    
        <meta charset="utf-8">
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style type="text/css">
        body {
            background-color: #f0f0f2;
            margin: 0;
            padding: 0;
            font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
            
        }
        div {
            width: 600px;
            margin: 5em auto;
            padding: 50px;
            background-color: #fff;
            border-radius: 1em;
        }
        a:link, a:visited {
            color: #38488f;
            text-decoration: none;
        }
        @media (max-width: 700px) {
            body {
                background-color: #fff;
            }
            div {
                width: auto;
                margin: 0 auto;
                border-radius: 0;
                padding: 1em;
            }
        }
        </style>    
    </head>
    
    <body>
    <div>
        <h1>Example Domain</h1>
        <p>This domain is established to be used for illustrative examples in documents. You may use this
        domain in examples without prior coordination or asking for permission.</p>
        <p><a href="http://www.iana.org/domains/example">More information...</a></p>
    </div>
    
    
    </body></html>

      トラブル

      • fonts.confの<blank>エラー

      • 以下のようにfonts.confのエラーが発生する場合

        $ google-chrome --headless --dump-dom http://example.com/
        [0710/212252.959768:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context.
        Fontconfig warning: "/etc/fonts/fonts.conf", line 146: blank doesn't take any effect anymore. please remove it from your fonts.conf
        Failed to generate minidump.Illegal instruction
        以下のようになっている/etc/fonts/fonts.confから、"<blank>"と"</blank>"を削除します。
        <?xml version="1.0"?>
        <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
        ...
        ...
        <!--
          These are the default Unicode chars that are expected to be blank
          in fonts.  All other blank chars are assumed to be broken and
          won't appear in the resulting charsets
         -->
                        <blank>
                                <int>0x0020</int>       <!-- SPACE -->
                                <int>0x00A0</int>       <!-- NO-BREAK SPACE -->
                                ...
                                ...
                                <int>0xFFFA</int>       <!-- INTERLINEAR ANNOTATION SEPARATOR -->
                                <int>0xFFFB</int>       <!-- INTERLINEAR ANNOTATION TERMINATOR -->
                        </blank>
        <!--
          Rescan configuration every 30 seconds when FcFontSetList is called
         -->
         ...
         ...
        </fontconfig>

      • ダンプで何も表示されない

      • 以下のようにERRORが表示されるだけ指定URLのDOMが表示されない場合、日本語フォントをインストールしてみます。

        $ google-chrome --headless --dump-dom http://example.com/
        [0710/215346.723946:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context.

        日本語フォントのインストール

        $ sudo yum install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts

        Chromeのバージョンが古い場合やWindowsの場合は、起動オプションに"--disable-gpu"を指定してみます。

        $ google-chrome --headless --disable-gpu --dump-dom http://example.com/