汎用ソフトウェア開発⭐ リポ 37品質スコア 75/100
claw-ds-generator
ユーザーが提供したターゲットURL(小説サイト、動画サイト、漫画サイトなど)を自動分析し、ウェブページの構造またはAPIを解析して、対応するdrpy-nodeスパイダールール(ds源/var rule={})を生成します。ユーザーがソース作成やルール制作をリクエストした際に起動します。
description の原文を見る
根据用户提供的目标网址(如小说、影视、漫画网站),自动分析网页结构或 API,生成对应的 drpy-node spider 规则 (ds源/var rule={})。当用户要求写源或制作规则时调用。
SKILL.md 本文
OpenClaw DS ソース生成スキル (claw-ds-generator)
スキル説明
本スキルは、指定されたターゲット Web サイトに対して自動的に ds ソース(drpy-node 標準に準拠したスパイダールール var rule = {} JS ファイル)を生成するために使用されます。
AI として、各セレクターを手動で作成する必要はなく、ブラウジング、検索、コード生成能力を活用して、ターゲット Web サイトの DOM 構造とネットワークリクエストを分析した後、特定の drpy 構文形式に従ってコードを出力します。
トリガー条件
ユーザーが以下のような指令を入力した場合にトリガーします:
- 「このURL xxx.com に基づいて、最終的なds ソースファイルをください」
- 「xxx のソースを作成してください」
- 「xxx ウェブサイトの ds ルールを製作してください」
ワークフロー
- URL を受け取る: ユーザーが提供するターゲット URL(例:
https://xxx.com)を取得し、ソースタイプ(映像、漫画、小説)を判定します。 - Web サイトを分析:
web_fetchまたはbrowserなどのツールを使用して URL にアクセスします。- 従来のサーバーサイドレンダリング Web サイトの場合:HTML 構造を分析し、リストページ、詳細ページ、検索ページの重要な CSS セレクターを抽出します。
- フロントエンド・バックエンド分離またはアンチスクレイピング Web サイトの場合:
browserを使用して Network タブを確認し、利用可能な API インターフェース(API 優先、JSON 返値がより解析しやすい)を見つけます。
- マッピングとルール構築:
- drpy-node の専用解析構文に基づいて、
var rule = {...}オブジェクトを構築します。 - ワークスペースの
template/ds_template.jsを参照し、type、host、url、searchUrlなどの必須フィールドが存在することを厳密に確保してください。
- drpy-node の専用解析構文に基づいて、
- ソースファイルを生成:
- DOM 解析を使用する場合、ルール形式は
"リストセレクター;タイトル;画像;説明;リンク"構文に準拠する必要があります。 - API または動的リクエストを使用する場合、
async function() { ... }で処理できます。
- DOM 解析を使用する場合、ルール形式は
- 結果を出力:
- 生成された完全な JS ソース設定コードをコードブロック形式でユーザーに返します。
drpy-node ルール構文ガイド (非常に重要)
ソースが システムで正常に実行されることを確保するため、AI が生成するルールは以下の特定の構文に従う必要があります:
-
基本形式:
リストセレクター;タイトル;画像;説明;リンク -
セレクター応用構文:
&&はネスト化を表します(例:.title&&a)||はフォールバックを表します(例:img&&data-src||img&&src):eq(n)はインデックス取得、*はすべてを表します。- 特殊属性サフィックス:
Text(テキスト抽出)、Html(内部 HTML 抽出)、href、src、style、data-*など。
-
グローバル関数 (async 関数モード内で使用可能):
request(url, options)- HTTP GET リクエストを開始します。post(url, options)- HTTP POST リクエストを開始します(例:await post(url, {body: params}))。pdfa(html, rule)- リストを解析し、ノード配列を返します。例:pdfa(html, '.list&&item')。pdfh(html, rule)- 単一ノード属性を解析し、文字列を返します。例:pdfh(item, 'a&&Text')。pd(html, rule)- 解析して絶対リンクを返します。
-
動的解析例 (文字列略記を使用しない場合、async 関数を使用):
一級: async function (tid, pg, filter, extend) { let [url, params] = this.input.split('?'); let html = await post(url, {body: params}); let items = html.parseX.itemsList; // JSON を返すと仮定 let d = items.map(item => ({ title: item.title, desc: item.subTitle, url: item.id, img: item.imageURL })); return setResult(d); }
実行ガイドライン (Guardrails)
- 汎用性を優先: 抽出されたセレクターは汎用性と安定性を備え、
class="abc-123 xyz"のようなあいまいまたはランダムなクラスの使用を避ける必要があります。 - 必須項目の検証:
ruleオブジェクトのtitle、host、urlは必須です。 - 出力形式: 最終出力は JavaScript コード(
var rule = { ... })である必要があり、通常の JSON データではありません!
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- hjdhnx
- リポジトリ
- hjdhnx/claw-ds
- ライセンス
- MIT
- 最終更新
- 2026/3/26
Source: https://github.com/hjdhnx/claw-ds / ライセンス: MIT