スクレイピング 未分類

nokogiriでサイトの情報取得-スクレイピング

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

すごい便利だ。
何に使うか思いつかないけど。

-スクレイピング, 未分類