HTMLファイルを解析し、HTMLの特定の部分の数字を見つけたいです。このスクリプトの目的は、トークンごとに 1 つの数値を取得することです。このスクリプトは、正しい IP アドレスに属する番号を見つける必要があります。
数字は IP の一部ですが、IP は完全ではなく、html タグに分離されています。それは、この仕事が複雑であることです。今まで私はこのコードを持っています:
@echo off
Setlocal EnableDelayedExpansion
SET proxy_3=hide_2.htm
FOR %%Z IN (hide_2.htm) DO (
FOR /F "tokens=1-20 delims=<>" %%A IN ('grep -B 1411 -E "</table>" %%Z ^| grep -E ^"^(display^|^^\d\d{1,3}^|country^|^<td^>HTTP^|rightborder^).*$^" ') DO (
echo A:%%A + B:%%B + C:%%C + D:%%D + %%E + %%F + %%G + %%H + %%I + %%J + %%K + %%L
FOR %%? in ( "%%~A", "%%~B", "%%~C", "%%~D", "%%~E", "%%~F", "%%~G", "%%~H", "%%~I", "%%~J") DO (
SET $=%%~?
echo $:!$!
)
pause
)
)
色付きのコードへのリンクをここに示します: http://codepaste.net/iaf4zr
次に、ここに私が解析したhtml ソースがあります: 行 581-585 を参照してください: http://codepaste.net/11bqxd (しばらくお待ちください。ロードまでに時間がかかります。しかし、待ちたくない場合のために、ここにソースを貼り付けます。フォーマットなしの html: http://codepaste.net/wdkcdr )
短縮版を見たい場合 - これは関連部分L.581-585 です: http://codepaste.net/e1t61n
今、私はいくつかのデバッグを行いました:
A: + B:td + C:span + D:span + 41 + /span + span style="display: none;"
+ 111 + /span + div + +
$:
$:td
$:span
$:span
$:41
$:/span
$:span style="display:
$:none
$:
$:111
$:/span
$:div
Press any key to continue...
A: style="display: none;" + B:190 + C:/div + D:span class="" style="" + . + /spa
n + span + 197 + /span + span + +
$: style="display:
$:none
$:
$:190
$:/div
$:span class="" style=""
$:.
$:/span
$:span
$:197
$:/span
$:span
Press any key to continue...
A: style="display: none;" + B:24 + C:/span + D:span + /span + . + span style="di
splay: + + + + +
$: style="display:
$:none
$:
$:24
$:/span
$:span
$:/span
$:.
$:span style="display:
$: "" "" "
Press any key to continue...
A:inline;" + B:132 + C:/span + D:span style="display: none;" + 39 + /span + . +
span + + + +
$:inline;"" "132" "/span" "span
$:style
$:display: none;"" "39" "/span" "." "span
$: "" "
ドル - $: は $ 変数の値をマークします。これは、引用符なしで 2 番目のループから派生した列/トークンである必要があります。ここでは、引用符なしで数値を探します。これは最後のケースでは失敗します。
文字 B: ... D: 最初の 4 つのトークン/列をマークし、残りのトークンはマークされません...
行 581-585 の該当/関連部分は次のとおりです。
A:inline;" + B:132 + C:/span + D:span style="display: none;" + 39 + /span + . +
span + + + +
$:inline;"" "132" "/span" "span
$:style
$:display: none;"" "39" "/span" "." "span
$: "" "
この部分を色で見たい場合は、次のリンクを参照してください: http://www.dostips.com/forum/viewtopic.php?f=3&t=3435
したがって、2 番目のループのトークン B は 132 で、引用符はありません。それは大丈夫に見えます。しかし、3 番目のループでは、 ... styleに変更されます。
2 番目のループの最初のトークンは inline;" ですが、3 番目のループはinline;"" "132" "/span" "spanを示しています
これがどのように可能か説明してもらえますか? 2人目のメンバーが入ったらそこの132が見たいです。最初の 3 つの数字は正常に解析できましたが、これはどうしようもありません。