RubyでWebページのスクレイピング(mechanize)
Rubyには、mechanizeというライブラリを使うと
スクレイピングが簡単にできそうです。
gem install mechanize
■基本 ホームページデータの取得
require 'mechanize' sitedata = Mechanize.new page = sitedata.get("https://www.example.com") puts page.body
page.links
page.title
page.label
と設定することで便利に使うことができます。
■要素の探索
sitedata = Mechanize.new
page = sitedata.get("https://www.example.com")
elements = page.search('h1 a')
puts elements
ここから先は勉強中です。
わかりやすいサイトです。
【RubyでWebスクレイピング】Mechanizeを使ってスクレイピングをする方法【主要機能まとめ】 - shin>>media
■リンクを操作する方法
require 'mechanize' sitedata = Mechanize.new page = sitedata.get('https://www.example.com') data = page.links data.each do |link| puts link.text puts link.href end
■フォームの操作
require 'mechanize' agent = Mechanize.new page = agent.get('http://example.com/') puts page.forms id_form = page.form_with(id: 'id情報') # page.form_with(class: 'class情報') id_form.field_with(name: '要素情報').value = '入力値' # id_form.field_with(id: 'id情報').value = '入力値' result_form = agent.submit(id_form) puts result_form.body
■ログインが必要なサイトへのアクセス
login_form = page.form_with(id: 'id情報') login_form.field_with(name: 'id').value = 'id' login_form.field_with(name: 'pass').value = 'password' after_login_page = agent.submit(login_form) puts after_login_page.body
■クッキー情報の収集
login_form = page.form_with(id: 'id情報') login_form.field_with(name: 'id').value = 'id' login_form.field_with(name: 'pass').value = 'password' after_login_page = agent.submit(login_form) cookies = agent.cookie_jar hoge = cookies.map { |cookie| cookie }