LoginSignup
1

More than 3 years have passed since last update.

rubyを使ったスクレイピングについて

Posted at

参考になったサイト

下記のサイトを参考に順当にやっていきました。
個人的につまずいたところに関しては、記事の後ろの方に書いています。

・Nokogiriを使ったRubyスクレイピング作成の手順がわかりやすく解説されています。
https://morizyun.github.io/blog/ruby-nokogiri-scraping-tutorial/index.html#5

・nokogiriの利用方法についてより詳しく解説されています。
http://otn.hatenablog.jp/entry/20090509/p1

・xpathの指定方法が載っています。
https://qiita.com/rllllho/items/cb1187cec0fb17fc650a

実際のコード

今回はrailsチュートリアルというサイトのある文字を抽出してみました。

require 'open-uri'
require 'nokogiri'

# スクレイピング先のURL
url = 'https://railstutorial.jp'

charset = nil
html = open(url) do |f|
  charset = f.charset # 文字種別を取得
  f.read # htmlを読み込んで変数htmlに渡す
end

# htmlをパース(解析)してオブジェクトを作成
doc = Nokogiri::HTML.parse(html, nil, charset)

doc.xpath('//ul[@class="progress"]').each do |node|
  # tilte
  p node.css('a').inner_text
  p node.xpath('//a[@href="/trial"]').inner_text


end


# doc.xpath('//li[@class="mdTopMTMList01Item"]').each do |node|
#   # tilte
#   p node.css('h3').inner_text

#   # 記事のサムネイル画像
#   p node.css('img').attribute('src').value

#   # 記事のサムネイル画像
#   p node.css('a').attribute('href').value

トラブルやつまずいたところ

・gemを使ってnokogiriをインストールする際に、rubyのバージョンが最新のものではなかったので、rubyの更新をしました。
・xpathの指定方法が分からなかったので、参考サイトに載っているコードをみて見るだけでなく、xpathの指定方法を改めて調べてみました。

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
1