TinkerBoard+Armbian Stretch+chromedriver インストール手順
apt install chromium chromium-driver
とかして最新版でインスコすると
chromium = 70
chromedriver = 2.41
という動かない組み合わせになっちゃって、全然動かない組み合わせになる。
http://chromedriver.chromium.org/downloads
TinkerBoard+Armbian Stretchでインスコできるchromiumとchromedriverの組み合わせを調査した所、
chromium = 67
chromedriver = 2.40
なら動くことがわかったのでその方法を書いておく。
1.まず chromium、chromium-driver両方消す
apt remove chromium apt remove chromium-driver
2.chromium=69、chromedriver=2.40をインストール
apt install chromium=69.0.3497.92-1~deb9u1 apt install chromium-driver=69.0.3497.92-1~deb9u1
するとこうなるはず。
root@tinkerboard:~# chromium --version && chromedriver --version Chromium 69.0.3497.92 built on Debian 9.5, running on Debian 9.6 ChromeDriver 2.40
3.chromedriver=2.40をコピー。
cp /usr/bin/chromedriver /root/chromedriver240
4.chromium を 67 にダウングレード。一緒に chromedriver が消えるはず。
apt install chromium=69.0.3497.93-1~deb9u1
※バージョン指定が 69.0.3497.93-1~deb9u1 になってるけど、これで 67 が入ります。
5.chromedriver=2.40を配置し直す
cp /root/chromedriver240 /usr/bin/chromedriver
するとこうなるはず。
root@tinkerboard:~# chromium --version && chromedriver --version Chromium 67.0.3396.87 built on Debian 9.4, running on Debian 9.6 ChromeDriver 2.40
6.日本語フォントも入れておく。これやんないとchromiumの日本語表示が変になる。
wget --content-disposition IPAfont00303.zip http://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php unzip IPAfont00303.zip -d /usr/share/fonts/ fc-cache -fv
(参考:https://qiita.com/thoriums/items/4b915677e1d4e9e21ca2)
7.動作確認。適当なphpを作って動作確認をする。
composer で facebook/webdriver を入れてから、
適当なphpを作って実行。
<?php # my name is test.php require_once dirname(__FILE__) . '/phplib/vendor/autoload.php'; use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\WebDriverBy; use Facebook\WebDriver\Chrome\ChromeDriver; use Facebook\WebDriver\Chrome\ChromeDriverService; //chromedriverを起動 $port = 9515; $service = new ChromeDriverService('/usr/bin/chromedriver', $port, array('--port=' . $port)); //chromedriver経由でchromiumを起動 $capabilities = DesiredCapabilities::chrome(); $capabilities->setCapability("chromeOptions", array("args" => array("--headless" , "--no-sandbox" , "--window-size=1920,1080"))); $driver = ChromeDriver::start($capabilities, $service); //yahoo.co.jpを開く print "open yahoo.\n"; $driver->get('https://www.yahoo.co.jp/'); //左柱のヤフオク!をクリックする。 print "click yahuoku.\n"; $driver->findElement(WebDriverBy::linkText('ヤフオク!'))->click(); //スクショを保存 print "save screenshot.\n"; $driver->takeScreenshot(dirname(__FILE__) . '/' . date('Ymd_His_') . getmypid() . '_' . mt_rand(10000, 99999) . '.png'); //chromium +chromedriverを終了する。 $driver->close(); print "exit.\n";
うまくいくと
root@tinkerboard:~# php /var/www/html/test.php open yahoo. click yahuoku. save screenshot. exit.
な感じになる。phpと同じディレクトリにヤフオクのスクショがpngで保存されているはずなので確認する。
これで環境構築は終わったので、あとは好きにクローラーを書いて必要な情報をぶっこ抜けばいいと思いました。
TinkerBoardは32bitCPUなので公式chromedriverのコピペが出来ないのがきつい。
環境構築だけならRaspberry Pi 3の方が楽なんじゃねーのか?とか思ったけど、
あっちはメモリー1GBしかないしなー。足りぬ。
まともなメーカーでメモリー潤沢で64bitCPUの
シングルボードコンピューター無いかなあ?
無理にシングルボードコンピューターに拘らずに、
小型PC買ってサーバーにしたほうが良さげかも。
ではでは
ディスカッション
コメント一覧
まだ、コメントがありません