4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

スクレイピング ❏Rails❏

Last updated at Posted at 2019-11-29

とは

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

と表示されたら成功

ちなみにこのサイトは僕が作ったスキューバダイビングの記録をつけるアプリケーションです!


ではまた!
4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?