とは
Web上のHTMLからデータを取ってくる処理
【その1】gemをインストール
Gemfile
gem 'mechanize'
ターミナル
bundle install
# 【その2】Mechanizeクラスを使うことを宣言 ```ruby:scraping.rb require 'mechanize' ```
# 【その3】インスタンス生成 ```ruby:scraping.rb require 'mechanize'
agent = Mechanize.new
<br>
# 【その4】URLからそのページのHTMLを取得
`get("URL")`
```ruby:scraping.rb
require 'mechanize'
agent = Mechanize.new
page = agent.get("https://bluelog2.herokuapp.com/")
# 【その5】要素を取得 `search('要素')`
scraping.rb
require 'mechanize'
agent = Mechanize.new
page = agent.get("https://bluelog2.herokuapp.com/")
elements = page.search('#bluelog')
タグ指定('h1')
やクラス指定('.manbow')
もできます。
複数続けて、ここの中のここ!みたいなこともできます。
('h2 a')
→h2タグの中のaタグを指定
# 【その6】テキストや属性値を取得 `inner_text`で中のテキスト
scraping.rb
require 'mechanize'
agent = Mechanize.new
page = agent.get("https://bluelog2.herokuapp.com/")
elements = page.search('#bluelog')
elements.each do |element|
puts element.inner_text
end
`[:属性]`でその属性値
scraping.rb
require 'mechanize'
agent = Mechanize.new
page = agent.get("https://bluelog2.herokuapp.com/")
elements = page.search('#bluelog')
elements.each do |element|
puts element[:href]
end
実際にやってみる
適当なファイルを作って、以下をコピペ
scraping.rb
require 'mechanize'
agent = Mechanize.new
page = agent.get("https://bluelog2.herokuapp.com/")
elements = page.search('#bluelog')
elements.each do |element|
puts element.inner_text
end
ファイルを置いたディレクトリに移動し
ターミナル
ruby scraping.rb
を実行
ターミナル
BlueLog
と表示されたら成功
ちなみにこのサイトは僕が作ったスキューバダイビングの記録をつけるアプリケーションです!
ではまた!