Greasy Fork is available in English.

i,o,pでXPath生成ツール

i:生成 o:除外条件付き生成 p:除外条件+1つの要素のみを生成 Shift+i:除外条件変更 Shift+o:要求条件入力 Shift+p:要求Hits数変更

Versão de: 21/02/2019. Veja: a última versão.

Autor
minarai
Avaliações
0 0 0
Versão
0.3.1
Criado
13/02/2019
Atualizado
21/02/2019
Licença
N/A
Aplicável a
Todos os sites

■ 概要

マウスで指し示した要素を指すXPath式を雑に作るツールです

■ 使い方

1.XPath式を作りたい要素の上をマウスでホバーしながらi,o,pキーのどれかを押してください
 押すキーによって作るXPath式の傾向を指示できます;

 i…通常の結果を表示します(基本)
 o…設定した除外文字列を含まない作例のみを表示します
 p…設定した除外文字列を含まない、かつページ全体で1つ(変更可)の要素だけにヒットする作例のみを表示します

2.指した要素の外枠が1秒ほど赤い点線で表示されるので指したかった要素が指せているか確認してください
 ポップアップパネルが出てエディットエリアと作成したXPath式の作例がいくつか表示されます
 作例には強いランダム性があるのでキーを押すたびに違う候補が出ます
 何度も押して作例を読みながらDOM構造を把握しつつ、良い候補が出るまでキーを連打するのが基本的な使い方です

 Hits列に表示される数値はその作例でヒットする要素の数を表しています
 目的の要素の総個数が分かっている時はその数と同じものに当たりをつけると早いです

 Possibly列と文字色ではその作例のだいたいの性質が下記のように分かります;

・last one(青)
 「(個数が不定の)列挙要素の最後の1つ」を指定したい時に有力候補です
 「同タグの兄要素があり、弟要素はないために、兄弟要素の順位指定に[last()]を使っている」ものがこれになります

・first one(緑)
 「(個数が不定の)列挙要素の最初の1つ」を指定したい時に有力候補です
 「同タグの弟要素があり、兄要素はないために、兄弟要素の順位指定に[1]を使っていて、ヒット数が1で、text()を指定していない」ものがこれになります
 この表示を期待する時はuAutoPagerize等のページ継ぎ足しアドオンを使用していると気が付かないところで次ページが読み込まれていてヒット数が1にならない(ため、この表示が出ない)ということが起こるので、継ぎ足し系アドオンは一時的にオフにした方が良いかもしれません

・id/class(赤紫)
 idかclass属性を使用しています。変更に強いXPath式を作るのにセオリーとして良い候補です

・href(赤)
 href属性を使用しています。あまり実用的でない場合が多いです

 作例の最後の3つだけは特別で、固定的な作り方をしています。これらはi,o,pの別の影響を受けません;
 1つめ…その要素だけの全ての属性を書いただけのもの(親ノードは遡らない)
 2つめ…その要素のフルパスを記述しただけのもの
 3つめ…全ての親ノードを遡り全ての属性を網羅したもの

3.作例上をマウスでホバーするとその式でヒットする要素が緑色に光るので確認してください

4.作例をクリックするとその式がエディットエリアにコピーされます(Ctrlキーを押しながらだとダブルクォーテーションを\でエスケープしてコピーされます)

5.作例をダブルクリックするとその式をクリップボードにコピーして終了します。Escキーを押すと何もせず終了します

6.エディットエリアでXPath式を書き換えるとリアルタイムでヒット数やPossiblyを表示し、ヒットする要素が緑色に光ります
 作例で出たものを叩き台に人間が仕上げるのに使うようになっています

■ 除外条件と要求条件の設定方法

○ 除外条件 Shift+i
 Shift+iを押すとプロンプトが出るので作例に含まれてほしくない文字列を正規表現で入力するとそれ以降o,pキーでの作例が全てそれを含まないものになります
 デフォルトでは@href=、text()、@title=、@alt=、@src=、が設定されています
 これは、(総数が不定の)複数項目や、(具体的内容がユニークではない)同じ立場の要素を指すXPathを探すように設定しています
 デフォルトはスクリプト冒頭の
 var excludeRE = "@href=|text\\(\\)|@title=|@alt=|@src=";
 の部分で変更できます

○ 要求条件 Shift+o
 Shift+oを押すとプロンプトが出るので作例に含んでほしい文字列を正規表現で入力するとそれ以降作例が全てそれを含むものになります
 デフォルトは空欄です
 初回のプロンプト入力時にはよく利用することになる @id=|@class がフォームの初期値として入っています

○ Hits数指定 Shift+p
 Shift+pを押すとプロンプトが出るので数値を入力すると、以降pキーでの作例はその数のヒット数が出るもののみになります

■ おまけ uAutoPagerize用MY_SITEINFO書き出し機能

uAutoPagerize用のMY_SITEINFOの雛形を(そのままコピペして挿入できる書式で)書き出させることができます
1.uAutoPagerizeのnextLinkに指定したい要素(「次のページ」などのリンク)のXPath式の作例を出して右端の「->」をクリック
 この時は末尾タグがAでない場合はAタグに当たるまで/..追加して親要素に遡ったものがコピーされます
2.uAutoPagerizeのpageElementに指定したい要素(継ぎ足したいコンテンツ)のXPath式の作例を出して右端の「[]」をクリック
順番はどちらでも良いので1と2両方決めるとアラートボックスが出るのでこのボックスを閉じると雛形がクリップボードにコピーされます
手直ししてuAutoPagerizeのMY_SITEINFOに挿入してください


不具合や要望があれば:(Bitmessage)BM-NBKhGgzahPds3f5Ms6ZRJyvZoMNgTYy4