Repolode
jsdom

jsdom/jsdom

Node.jsでヘッドレスDOM環境を実現する、WHATWG DOMおよびHTML標準の純粋なJavaScript実装。

スター
21,749
フォーク
1,821
未解決の Issue
289
最終コミット
19 時間前

これは何?

jsdomは、実際のWebページで使われているHTMLドキュメントをNode.jsのコードから解析、検索、操作できるよう、ブラウザーのDOM、HTML、および関連するWebプラットフォームAPIを十分にエミュレートします。フロントエンドコードのテストや、ブラウザーを丸ごと起動せずにページをスクレイピングする用途でよく使われます。

HTML文字列をJSDOMコンストラクターに渡してドキュメントを作成し、返されたwindowオブジェクトとdocumentオブジェクトをブラウザーと同じように使います。オプションでは、ページのURL、コンテンツタイプ(HTMLまたはXML)、ページ内スクリプトを実行するかどうかを指定できます。信頼できないコードを実行するセキュリティ上のリスクがあるため、スクリプトの実行はデフォルトで無効です。

jsdomでは、スタイルシート、iframe、スクリプトなどのサブリソースを任意で読み込めるほか、undiciを使ったカスタムリクエストのインターセプトにも対応しています。また、Cookie jar、ページの出力を取得するための仮想コンソール、fromURLやfromFileなどのヘルパーも備えています。レイアウトとページ遷移には対応していません。

主な機能

  • 01WHATWG DOMおよびHTML標準を、Node.js向けに純粋なJavaScriptで実装。
  • 02暗黙のタグをブラウザー同様に扱いながら、HTMLおよびXMLドキュメントを解析。
  • 03ページ内スクリプトを任意で実行でき、デフォルトでは実行を無効化。
  • 04リソースの読み込みを有効にすると、スタイルシート、iframe、スクリプトを読み込み。
  • 05undiciを介してカスタムプロキシ、ヘッダー、リクエストインターセプターに対応。
  • 06Cookie jar、仮想コンソール、fromURL/fromFileヘルパーを提供。

ユースケース

  • 実際のブラウザーを使わずに、フロントエンドのコンポーネントやライブラリをユニットテスト。
  • Node.jsスクリプトでHTMLページをスクレイピング、解析。
  • Node.jsのテストスイート内で、ブラウザーに依存するコードを実行。
  • テスト中にページスクリプトが行うネットワークリクエストをインターセプト、またはスタブ化。

クイックスタート

  1. 1

    npmからjsdomをインストールする

    npm install jsdom
  2. 2

    HTML文字列からJSDOMインスタンスを作成し、documentを読み取る

使う前に知っておきたいこと

  • レイアウトやレンダリングは行わないため、ブラウザーの視覚的な動作を再現できません。
  • DOM内でのスクリプト実行はデフォルトで無効になっており、信頼できないコンテンツで実行するのは安全ではありません。

収録されている特集

トピック

よくある質問

jsdom とは?
Node.jsでヘッドレスDOM環境を実現する、WHATWG DOMおよびHTML標準の純粋なJavaScript実装。 jsdomは、実際のWebページで使われているHTMLドキュメントをNode.jsのコードから解析、検索、操作できるよう、ブラウザーのDOM、HTML、および関連するWebプラットフォームAPIを十分にエミュレートします。フロントエンドコードのテストや、ブラウザーを丸ごと起動せずにページをスクレイピングする用途でよく使われます。
jsdom は無料で使えますか?ライセンスは?
jsdom は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
jsdom は今もメンテナンスされていますか?
活発にメンテナンス中。jsdom の最終コミットは 2026年11月6日 です。
jsdom は何に使えますか?
実際のブラウザーを使わずに、フロントエンドのコンポーネントやライブラリをユニットテスト。 Node.jsスクリプトでHTMLページをスクレイピング、解析。 Node.jsのテストスイート内で、ブラウザーに依存するコードを実行。 テスト中にページスクリプトが行うネットワークリクエストをインターセプト、またはスタブ化。
jsdom のインストール方法は?
npmからjsdomをインストールする: npm install jsdom HTML文字列からJSDOMインスタンスを作成し、documentを読み取る
jsdom はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/jsdom/jsdom

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

サーバーやブラウザーでHTML・XMLを解析、操作できる高速なjQuery風ライブラリ。

開発ツール#html-parser#jquery#scraping
3.1万1746TypeScriptMIT活発にメンテナンス更新 昨日

DOMメソッド、CSSセレクター、XPathを使って実際のHTMLを解析、スクレイピング、編集、サニタイズできるJavaライブラリ。

バックエンド・API#java#html-parser#web-scraping
1.1万2319JavaMIT活発にメンテナンス更新 一昨日

Node.jsとブラウザーで使える、describe/it形式のテスト構成と非同期テストに対応した、広く利用されているJavaScriptテストフレームワークです。

2.3万3143JavaScriptMIT活発にメンテナンス更新 16 時間前