Rubyでのスクレイピング・クローラー開発記録(データベース系サイトのデータ収集用)

データベース系サイト用にデータ収集クローラーを開発してみることにしました。その記録をこちらに記載していきます。

この記事は随時追記していくタイプの記事です。

↓はデータベース系サイトの開発記録です。ここから派生した開発です。

PHPでの検索機能付きデータベース系サイト開発記録
2016/4/7の開発記録 AA作成ツールをやめていきなりCakePHPでのフレームワークを使用したサイトを作り始めてみる事にしました。 ...

Rubyによるクローラー開発技法を読んで覚えた事まとめ
クローラーが自分で作れるの? というのが先ずこの本の題名を見て感じた事です。 Rubyによるクローラー開発技法 巡回...

↑こちらの書籍を参考・羅針盤として進めていきたいと思います。

スポンサーリンク

2016/10/25の開発記録

クローラーの初歩wgetを実践しました。

wgetコマンドで使ってみたコマンドのメモ一覧
wgetコマンドで使ってみたコマンドのメモ・一覧です。 wget確認 $ which wget /usr/bin/wget ...

wgetの次はRubyでクローラー開発に入るのでrbenvのインストールをしました。

rbenvをインストールした手順(Rubyのバージョン管理の為)
Rubyを入れようと思いましたが、ディレクトリ毎でRubyのバージョン管理が出来る「rbenv」がないと不便という事を聞いたので、rbenv...

2016/10/28の開発記録

rubyの勉強をしました。

Ruby Tips
Rubyを1から学習する中で覚えていった事・使った事をメモしていきます。 随時追加記事 コメント 1行コメント # 1行コメント...

2016/11/27-28の開発記録

上の参考書籍ベースでrubyの勉強をして以下に追記しました。

Ruby Tips
Rubyを1から学習する中で覚えていった事・使った事をメモしていきます。 随時追加記事 コメント 1行コメント # 1行コメント...

rss出力のサンプル作成をした。

2016/12/9の開発記録

書籍ベースで10分クローラー(まだ第1章)を作成

2016/12/28の開発記録

書籍ベースでopen-uriを実践

2016/12/29の開発記録

Nokogiri、Anemoneをインストール

RubyのHTML構文解析ライブラリ・スクレイピングNokogiriのインストール
RubyのHTML構文解析ライブラリ・スクレイピングNokogiriのインストールをしました。 手順を記録しておきます。 クロー...
Rubyの静的・ステートレスなクローラー(crawler)Anemoneのインストールと使い方
Rubyの静的・ステートレスなクローラー(crawler)Anemoneのインストールをしました。 先ず、Nokogiriをインストールし...

amazonの書籍ランキングをAnemoneで取得するサンプルを実施。

2016/12/30の開発記録

amazonの書籍ランキングをAnemoneでRSSから取得するサンプルを実施。

ブラウザタイプのクローラーを作成する準備。

Poltergeistのインストール方法
ブラウザタイプのクローラーに必要だった為gemのPoltergeistをインストールしました。 CentOSへのインストール $ gem...
selenium webdriverのインストール方法
動的なクローラー作成の為、selenium webdriverをインストールしました。 $ gem install selenium-we...
PhantomJSのインストール方法
動的なブラウザタイプのクローラーを作成する為、PhantomJSのインストールをした時の手順です。 CentOSへのPhantomJSのイ...

2017/1/30の開発記録

WindowsのブラウザでクローリングしたかったのでWindowsへ入れ直す。

windowsへのRubyをインストールした。

http://rubyinstaller.org/downloads/

windowsへのwebsocket-driverをインストールした。

windowsにwebsocket-driverをインストールする
windowsにwebsocket-driverをインストールしました。 バージョンを選択し、右カラムの「Download」リ...

PhantomJSをWindowsへインストールした。

PhantomJSのインストール方法
動的なブラウザタイプのクローラーを作成する為、PhantomJSのインストールをした時の手順です。 CentOSへのPhantomJSのイ...

poltergeistをWindowsへインストールした。

Poltergeistのインストール方法
ブラウザタイプのクローラーに必要だった為gemのPoltergeistをインストールしました。 CentOSへのインストール $ gem...

windowsへのpoltergeistのインストールに必要だったwindowsへのRubyDevKitもインストールした。

WindowsへのRubyインストールDevKitも
WindowsへRubyをインストールする。 WindowsへのRubyインストールとDevKitインストール Download...

windowsへのselenium-webdriverもインストールした。

全部インストールしたのにamazonのログインクローラーがエラーになる。

今度はこれの調査から。

2017/2/12の開発記録

2週間ぶりになってしまった・・・

↑のエラーのままだったので調べました。

結局geckodriveのパスを指定しても治らず、そもそもseleniumが新しくなるとgeckodriveを使用するようになったようで、seleniumがver2系だとgeckodriveを使わないようです。

という事で

をしてみて再度実行しました。

が、またエラー。

何故か良くわからないのですが、再び

で最新のものをインストールしたら治りました。

2017/2/13-16の開発記録

ひたすら対象サイトのクローラー作りに励んでいるところです。(本来したかった対象サイトではなく収集したいサイトで練習中です)

結局今回参考にしようとした書籍通りだと環境が難しかったのでqiitaに出ている色々な情報をあさりました。

mechanizeを使うと簡単でした。何かできたら別途書きます。

rubyのスクレイピングライブラリmechanizeをインストール
rubyのスクレイピングライブラリmechanizeをインストールしましたので手順を記載しておきます。 mechanizeのインストール ...

2017/2/19,21,22,24の開発記録

写真を載せてくれているサービスを先ずクローリングしてみようとしたのですが、javascriptを使用しており、capybara・mechanize・seleniumを駆使してやってみようとしましたが、javascriptを読み込んでかつ写真を保存するのが難しくて、事例が見つけられず色々試してみてみたものの、八方ふさがりでわかりませんでした。

この写真サービスのクローリングは諦めて、本来のデータベース構築用に向けて対象サイトをmechanizeでクローリングして画像収集したらあっさりと出来ました。こっちのサイトもjavascriptでのポップアップだと思ったのですがそうではなかったので簡単でした。

今ゆっくりとクローリングしてcsvに出力している作業中です。

明日からはデータベースにクローリングデータの投入作業になります。全部投入したらこのクローリングシステムは一旦終了です。

終わりが見えてきた・・・。

ひとまず完了

クローリングして収集したデータ投入が2月で終わりましたので完了にします。

簡易的なクローラーでしたが、これで色々なサイトを作る事になってもデータ収集というスキルが少し身に着ける事が出来ました。

環境のバージョンが本とは変わっていたりなどで、なかなか本通りに進める事が出来ませんでしたが、web上で「スクレイピング」「クローラー」「capybara」「mechanize」「selenium」と検索すると参考情報が多数出てくる時代でしたので、通勤時間に片っ端から読んでいってようやく1つの正解手法にたどり着く事が出来ましたので、本当にやって良かったです。

スクレイピングサンプルはこちら↓

Ruby Mechanizeを使用したスクレイピングのサンプル・例
Ruby Mechanizeを使用したスクレイピングのサンプル・例を記載します。 一括での画像収集も出来ました。 img src の...

ではデータ投入先のこちらに戻ります。↓

PHPでの検索機能付きデータベース系サイト開発記録
2016/4/7の開発記録 AA作成ツールをやめていきなりCakePHPでのフレームワークを使用したサイトを作り始めてみる事にしました。 ...