ページ内ナビ
概要
Nokogiriは、RubyでHTML4・HTML5・XMLを読み書きし、CSSセレクターやXPathで要素を検索するためのライブラリです。DOM、SAX、XSD検証、XSLT変換を一つのAPI群で扱えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
向いている用途
抽出・変換・検証をRubyの処理へ組み込む
Webページから必要な要素を抽出する処理、XML APIやフィードの取り込み、文書形式の検証に向きます。ローカル文字列のHTMLとXMLを解析すれば、ネットワークアクセスなしでAPIの基本動作を確認できます。
出典:[5]
導入前の確認
Ruby実装と解析器の差を意識する
v1.19.4はRuby 3.2以上またはJRuby 10以上を要件とし、CRubyとJRubyでは基盤となる解析器が異なります。またHTML5 APIはJRubyでは利用できません。READMEは解析器間の意味のある挙動差を吸収しない方針も示しているため、本番と同じRuby実装と実行環境で確認が必要です。
出典:[1]
参考にした公式資料
- [1]sparklemotion/nokogiri README (1.19.4)(2026-10-04)
- [2]sparklemotion/nokogiri GitHub repository metadata(2026-10-04)
- [3]sparklemotion/nokogiri license (1.19.4)(2026-10-04)
- [4]Nokogiri 1.19.4 release(2026-10-04)
- [5]Nokogiri official documentation(2026-10-04)
編集部からの補足
画面スクレイピングだけでなく、XML連携、フィード処理、入力文書の検証にも使えます。外部入力は信頼せず、利用するRuby実装とネイティブgem、基盤となる解析器の組み合わせを固定して検証してください。
3ステップで試す
- 1
CRubyとBundlerを確認して固定版を追加
HTML5 APIを利用できるCRuby 3.2以上とBundlerを確認し、検証用の依存関係へv1.19.4を固定して導入します。
ruby -e 'abort "CRuby 3.2+ required for HTML5" unless RUBY_ENGINE=="ruby" && Gem::Version.new(RUBY_VERSION)>=Gem::Version.new("3.2")' && bundle --version && mkdir nokogiri-local && cd nokogiri-local && bundle init && bundle add nokogiri --version 1.19.4 - 2
HTMLとXMLの確認コードを作成
ローカル文字列のHTML5をCSSセレクターで、XMLをXPathで検索する例を作ります。
printf '%s\n' 'require "nokogiri"' 'html = Nokogiri::HTML5("<main><h1>OSS探訪</h1></main>")' 'xml = Nokogiri::XML("<items><item id=\"1\">local</item></items>") { |config| config.strict }' 'puts [html.at_css("h1").text, xml.at_xpath("//item[@id=\"1\"]").text].join(" | ")' > parse.rb - 3
解析結果を確認
OSS探訪 | localと表示され、HTMLとXMLの両方から目的の値を取得できることを確認します。
bundle exec ruby parse.rb
成長
成長の推移 · 直近30日
6,284 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 7
- Open PR
- 44
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Scrapy64,578 Stars
共通タグ 1件 · 共通カテゴリ 1件
Webサイトを巡回し、抽出した構造化データをパイプラインへ流す
Python - Prettier52,314 Stars
共通タグ 1件 · 共通カテゴリ 1件
codeをparseして一貫したstyleへ再出力するopinionated formatter
JavaScript - Jekyll51,707 Stars
共通タグ 1件 · 共通カテゴリ 1件
MarkdownとLiquidからブログ対応の静的サイトを生成
Ruby - Homebrew49,884 Stars
共通タグ 1件 · 共通カテゴリ 1件
macOS/Linuxのソフトウェア導入を
Rubybrewコマンドへまとめるパッケージ管理ツール - Apache Spark44,116 Stars
共通タグ 1件 · 共通カテゴリ 1件
SQL・DataFrame・stream・MLを同じdistributed engineで処理する
Scala - fastlane42,201 Stars
共通タグ 1件 · 共通カテゴリ 1件
iOS・Androidのビルド、署名、スクリーンショット、ストア配信を繰り返せるlaneとして自動化する
Ruby
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。