Ashigaruコンピューター道

ソフトウェアの話とか、キャリアの話とか

Ubuntuスクレイピングサーバの構築

なんかしらの価値ある情報サービスを提供するばあい、

  1. 自分でコンテンツを作成する
  2. コンテンツを集めて加工する
  3. ユーザがコンテンツを提供するフラットフォームを提供

のどれかの手段を取る必要があるが、今回作成したキンドルセール情報の検索サイトは「2」なので、スクレイピングして情報を集めることにした。

結構この手段を使うひとはいると思うので、構築手順を書いておく。

スクレイピングサーバ構築手順

node.js install
 sudo apt-get install nodejs
ruby install
apt install rbenv ruby-build
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev ruby-dev  libmysqlclient-dev
mkdir -p "$(rbenv root)/plugins"
git clone https://github.com/rkh/rbenv-update.git "$(rbenv root)/plugins/rbenv-update"
rbenv install 2.3.1 
ruby project deploy
git clone xxxxxxx
sudo apt install ruby-bundler
bundle install
ブラウザ動作環境を整える
chromium install
sudo apt-get install chromium-browser
sudo apt-get install xvfb
chrome-driver install
wget https://chromedriver.storage.googleapis.com/2.26/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
cp chromedriver ~/.rbenv/versions/2.3.1/bin
~/.bash.rcに追加
# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
nohup Xvfb :99 -ac -screen 0 1024x768x8 &
export DISPLAY=":99" 

のちにAnsibleで書いて自動化する気持だけは強くもっている。