読者です 読者をやめる 読者になる 読者になる

waste of time

主にPHP

WindowsでAnemoneを使う

Ruby クローラー Anemone

業務でクローラー作る案件を他の人がやってて興味があったので、自分でも少し試してみました。 rubyインストールからAnemone(Ruby製のクローラー)でスクレイピングするまで。

Rubyインストール

chocolateyでrubyrubygemsをインストールする。 Powershellで以下のコマンドを入力する。

> cinst ruby
> ruby --version    => ruby 2.1.6p336 (2015-04-13 revision 50298) [x64-mingw32]

> cinst rubygems
> gem --version     => 2.4.1

Anemoneインストール

rubygemsでインストールしようとしたらエラーが出た。

> gem install anemone

ERROR:  Could not find a valid gem 'anemone' (>= 0), here is why:
    Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

rubygemsの証明書が古いのが原因らしいので、以下を参考に新しい証明書を追加する。

参考: bundle install がこけるようになった(改訂版)

新しい証明書を追加したあと、再度gem install anemoneしたらインストールできた。

スクリプト作成

Qiitaのトップページ(ログインページ)のURL一覧を取得してみる。

require 'anemone'

url = 'http://qiita.com/'
opts = {
    :skip_query_strings => true,
    :depth_limit => 1
}

Anemone.crawl(url, opts) do |anemone|
    anemone.on_every_page do |page|
        puts page.url
    end
end

こんな感じで出力される↓

f:id:tmysz:20150912183938p:plain