nokogiriという便利なrubyライブラリで、スクレイピング(Webサイトの情報解析、抽出)
を行ってみた。
事前準備
gemにてnokogiriをインストール
gem install nokogiri
コード
koooza.rb
require 'open-uri'
require 'nokogiri'
# 対象のURL
url = 'https://koooza.net/'
charset = nil
html = open(url) do |f|
charset = f.charset # 文字種別を取得
f.read # htmlを読み込んで変数htmlに渡す
end
# html解析用のオブジェクト作成
doc = Nokogiri::HTML.parse(html, nil, charset)
titles = []
#h2(classがheading heading-archive)の要素(部分)を取得し、その要素ごとにブロックを実行
doc.xpath('//h2[@class="heading heading-archive"]').each do |node|
#取得した要素のうち、aタグのなかのテキスト部分を取得
title = node.css('a').inner_text
#そのaタグの中のテキストをtitles配列に入れ込む
titles << title
end
#入れ込んだtitles配列をファイルに書き込む
titles.each do |text|
File.open("koooza_title.txt","a") do |f|
f.puts text
end
end
doc.xpath('//h2[@class="heading heading-archive"]').each do |node|
の h2[@class="heading heading-archive] 部分はChromeの検証ツールで確認

実行
ruby koooza.rb
結果
koooza_title.txt
rubyとseleniumでブラウザ操作 CSS-classとidの使い分け HTML-hrタグ FlexBox-CSS CSS 中央寄せ Ruby関数 ファイル操作 さくらエディタのRuby用設定 Ruby関数 begin ~ rescue ~ end RubyクラスーDATE Ruby関数 shift pop include? uniq
すごい便利だ。
何に使うか思いつかないけど。