ubuntuサーバでChrome Headlessを使用する
2072 ワード
Install Google Chrome
数ヶ月前に発表されたChrome 59 betaはheadlessモードを発売した.原生のChrome、より良い汎用性、より速いスピード......Phantomjs、Ghostたちとさよならを言う時が来たようです.検索してみると、多くの人がデスクトップ版のlinuxやmacで新鮮なものを食べていますが、Chromeをweb 2に使用しています.0爬虫類なら、やはりサーバー版linuxで実行しなければなりません.chromeのインストール
テスト環境:Ubuntu 16.04デスクトップ版のubuntuであれば、公式サイトに最新版chromeをダウンロードしてインストールすればいい.サーバ版のchromeでは、コマンドラインでのみサーババージョンChromeをインストールできます.sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb # Might show "errors", fixed by next line
sudo apt-get install -f
テスト
chromeの起動 google-chrome --headless --remote-debugging-port=9222 https://chromium.org --disable-gpu
ここではheadlessモードを使用してリモートデバッグを行い、ubuntuにはgpuがないことが多いので、エラーを報告しないようにします.その後、別のコマンドラインを使用して、ローカルの9222ポートにアクセスします. curl http://localhost:9222
デバッグ情報が表示されるのは、インストールされているはずです.
chromedriverのダウンロード
chromedriverはchromeを操作するapiを提供し、seleniumがchromeを制御する橋渡しである.[ダウンロードリンク]https://sites.google.com/a/chromium.org/chromedriver/downloads]最新のChromeバージョンを表示します.ダウンロードと解凍: wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
ここではseleniumを使用してchromeをheadlessモードで実行するように直接制御します. utf-8fromseleniumimportwebdriverchrome_options=webdriver.ChromeOptions()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')client=webdriver.Chrome(chrome_options=chrome_options,executable_path='/home/chromedriver')# chromedriver PATH , client.get("https://jiayi.space")content=client.page_source.encode('utf-8')printcontentclient.quit()
もちろんここはページの内容が印刷されています.その後、以前登ったサイトを探してみました.js暗号化リダイレクトを行い、phantomjsリクエストが直接破棄されたことを検出しました.その結果、Chrome headlessはレンダリング後のページを取得することに成功しました.簡単なテストに基づいて、すべてが完璧だと感じました.まだ生产环境の下でどんなバグがあるか分からないで、出会って更に更新します.
sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb # Might show "errors", fixed by next line
sudo apt-get install -f
chromeの起動
google-chrome --headless --remote-debugging-port=9222 https://chromium.org --disable-gpu
ここではheadlessモードを使用してリモートデバッグを行い、ubuntuにはgpuがないことが多いので、エラーを報告しないようにします.その後、別のコマンドラインを使用して、ローカルの9222ポートにアクセスします.
curl http://localhost:9222
デバッグ情報が表示されるのは、インストールされているはずです.
chromedriverのダウンロード
chromedriverはchromeを操作するapiを提供し、seleniumがchromeを制御する橋渡しである.[ダウンロードリンク]https://sites.google.com/a/chromium.org/chromedriver/downloads]最新のChromeバージョンを表示します.ダウンロードと解凍: wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
ここではseleniumを使用してchromeをheadlessモードで実行するように直接制御します. utf-8fromseleniumimportwebdriverchrome_options=webdriver.ChromeOptions()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')client=webdriver.Chrome(chrome_options=chrome_options,executable_path='/home/chromedriver')# chromedriver PATH , client.get("https://jiayi.space")content=client.page_source.encode('utf-8')printcontentclient.quit()
もちろんここはページの内容が印刷されています.その後、以前登ったサイトを探してみました.js暗号化リダイレクトを行い、phantomjsリクエストが直接破棄されたことを検出しました.その結果、Chrome headlessはレンダリング後のページを取得することに成功しました.簡単なテストに基づいて、すべてが完璧だと感じました.まだ生产环境の下でどんなバグがあるか分からないで、出会って更に更新します.
wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
utf-8fromseleniumimportwebdriverchrome_options=webdriver.ChromeOptions()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')client=webdriver.Chrome(chrome_options=chrome_options,executable_path='/home/chromedriver')# chromedriver PATH , client.get("https://jiayi.space")content=client.page_source.encode('utf-8')printcontentclient.quit()