HTML Scraper 開発者ドキュメント

この拡張は TurboWarp / Scratch 環境で HTML を取得・解析し、XPath / JSONPath を用いたスクレイピングを可能にします。

概要

導入方法

  1. TurboWarpエディタを開く
  2. 「拡張機能を読み込む」→「ファイルを読み込む」
  3. ※ Unsandboxed モード必須

ブロックリファレンス

基本操作

ブロック説明
URL [URL] からHTMLを読み込む指定URLをフェッチし、解析する
パラメータ [Param] を [text] にするクエリパラメータを文字列に変更して再読み込み
パラメータ [Param] を [num] ずつ変えるクエリパラメータを数値で加算して再読み込み

内容取得

ブロック説明
XPath [X] から内容を取得ElementならinnerHTML、Textならtextを返す
XPath [X] から内容(テキスト)を取得<br>を改行に変換しテキスト取得
XPath [X] から InnerHTML を取得ElementのinnerHTML
XPath [X] から OuterHTML を取得ElementのouterHTML
XPath [X] から属性 [Attr] を取得href, src などをそのまま返す
XPath [X] の [index] 番目の直下テキスト直下のテキストノードのみ取得

JSON操作

ブロック説明
XPath [X] から OuterHTML の JSON を取得OuterHTMLをJSON化
XPath [X] から InnerHTML の JSON を取得InnerHTMLをJSON化
XPath [X] から OuterHTML の JSON のパス [JSONPath] を取得JSONPathで指定部分を返す
XPath [X] から InnerHTML の JSON のパス [JSONPath] を取得同上

正規表現関連

ブロック説明
XPath [X] の内容から正規表現 [R] にマッチする全ての要素全一致を配列(JSON)で返す
XPath [X] の内容から正規表現 [R] にマッチした要素の [i] 番目指定インデックスのマッチを返す
XPath [X] の属性 [A] から正規表現 [R] にマッチする全ての要素属性値を正規表現で抽出
XPath [X] の属性 [A] から正規表現 [R] にマッチした要素の [i] 番目インデックス指定
XPath [X] の [i] 番目の直下テキストから正規表現 [R] にマッチする全ての要素直下テキストを正規表現抽出
XPath [X] の [i] 番目の直下テキストから正規表現 [R] にマッチした要素の [j] 番目インデックス指定

その他ユーティリティ

ブロック説明
現在読み込んでいるURL最新のURL
読み込み結果生のHTMLテキスト
読み込みステータスHTTPステータスコード
CORSエラーが発生したフェッチがCORS制限で失敗したかを返す

注意点

内部仕様(開発者向け)

- Scratch.fetch を利用してHTMLを取得
- DOMParser でHTMLを Document に変換
- document.evaluate() で XPath クエリを実行
- JSON化は再帰的にノードを解析して構造化
- 正規表現抽出は JavaScript の RegExp を使用
- CORSエラーは Scratch.canFetch() または fetch 失敗時に記録