MAGAZINE
ルーターマガジン
クローリング/スクレイピング
windows環境でクローラーを開発・運用するための環境構築方法
2018.07.13
こんにちは。koyakuです。
今回は、windows上でubuntuとrubyの環境を構築し、クローリングを行ってみようと思います。
最終的には、弊社のホームページのメインページよりブログ一覧画面へ移動をし、スクリーンショットを取得したいと思います。
手順
- ubuntuのインストール・初期設定
- ruby開発環境の構築
- selenium環境の構築
それでは、順番に進めていこうと思います。
ubuntuのインストール
まず、windows subsystem for linux のインストールします。
desktop左下のスタートボタンを右クリックし、[アプリと機能]を選択。
関連設定の[プログラムと機能]を選択
[windowsの機能の有効化または無効化]を選択
windows subsystem for linuxを選択 有効化
desktop左下のスタートボタンをクリックし、Microsoft Storeを開き、ubuntuを検索、インストール
スタートボタンよりubuntuを検索。起動。
起動したのちに、ubuntuの画面より、username / password の設定が求められるので、入力する。
※今後も多用するため、忘れないようにしておきましょう
上記を設定すると、見慣れたlinuxの画面が現れるかと思います。
rubyのインストール
rubyを管理する rbenvをインストール
※rbenvは複数のRubyのバージョンを切り替えて使うことのできる、便利なツールです。 プロジェクトによって異なるバージョンのRubyを使うときに、rbenvを使うことでプロジェクト毎にRubyのバージョンを切り替えて使うことができます。
gitをインストール
sudo apt-get install git
rbenvをインストール
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
vi ~/.bashrc
.bashrcへ下記を記載
eval "$(rbenv init -)"
ruby-buildをインストール
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
sudo apt install git build-essential libssl-dev
インストールできるrubyのバージョンを確認
rbenv install -l
rubyをインストール
今回は、ruby 2.3.4をインストールします
rbenv install 2.3.4
インストールできたかを確認
ruby -v
通常使うrubyのバージョンとして指定
rbenv global 2.3.4
反映を確認
ruby -v
chromeヘッドレス環境
次に、seleniumを使うために、chromeヘッドレス環境を準備します。こちらは、弊社のchrome ヘッドレスの環境構築(Ubuntu編)をご確認ください。
クローリングを行い、検索結果を取得する
chromeヘッドレス環境が準備できましたら、いよいよ実際にクローリングを行います。 今回は、googleへアクセスし、弊社名を検索し、検索結果のタイトルを取得したいと思います。 以下に従い、Gemfileと実行用のubuntu_crawl_test.rbの2つファイルを作成してください。Gemfile
gem 'nokogiri'
gem 'selenium-webdriver'
ubuntu_crawl_test.rb
require 'nokogiri'
require 'selenium-webdriver'
class Crawler
def get_title_text(driver)
#Nokogiriを用いてHTMLをパースする
doc = Nokogiri::HTML.parse(driver.page_source, nil, 'utf-8')
#ユーザー名を取得
doc.css('h3.r').each do |h3|
puts h3.text
end
end
def main
ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
#ブラウザ立ち上げモード
#caps = Selenium::WebDriver::Remote::Capabilities.chrome('chromeOptions' => {args: ["--user-agent=#{ua}", 'window-size=1280x800']})
#ヘッドレスモード
caps = Selenium::WebDriver::Remote::Capabilities.chrome('chromeOptions' => {args: ["--headless","--no-sandbox", "--disable-setuid-sandbox", "--disable-gpu", "--user-agent=#{ua}", 'window-size=1280x800']})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
#googleのトップページに移動
driver.navigate.to "https://www.google.co.jp/"
#google検索フォームに値を入力
driver.execute_script("document.getElementById('lst-ib').value = '株式会社ルーター'")
#検索ボタンをクリック
driver.execute_script("document.getElementsByName('btnK')[0].click()")
3.times{|i|
get_title_text(driver)
driver.execute_script("document.getElementById('pnnext').click()")
sleep 2
}
get_title_text(driver)
end
end
Crawler.new.main
bundle installを行います
$ bundle install --path .bundle
実行します
$ bundle exec ruby ubuntu_crawl_test.rb
実行結果
株式会社ルーター – データクローリング・スクレイピングによるビッグデータ収集
採用情報 – 株式会社ルーター
プレスリリース – 株式会社ルーター
株式会社ルーターの最新情報 - Wantedly
携帯端末などのアフターサービス業務のコンサルタント 株式会社ルーター
株式会社ルーターのアルバイト・バイト求人情報 | 仕事探しは【マッハバイト】
株式会社ルーターの採用・求人情報-engage
株式会社ルーターの求人・転職情報 | Find Job!
株式会社ルーターの求人・転職情報|挑戦する20代の転職サイト - キャリトレ
株式会社ルーター - カイシャの評判
株式会社ルーター 【業務未経験者歓迎】サーバーサイトの開発エンジニア ...
株式会社ルーター - ホーム | Facebook
ルーターの口コミ/評価|カイシャの評判(10200189697)
株式会社ルーターのアルバイト・バイト求人情報|【タウンワーク】でバイトや ...
株式会社ルーターの求人 | Indeed (インディード)
株式会社ルーター アルバイトの求人 - 東京都 新宿区 東新宿駅 | Indeed ...
無事にタイトルを取得することができましたでしょうか?
今回は、windows環境下で、クローラーを動かしてみました。
CONTACT
お問い合わせ・ご依頼はこちらから