我想解析 html 文件并在 html 的某些部分中查找数字。此脚本的目标是为每个令牌获取一个数字。此脚本必须找到属于正确 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
$: "" "
美元 - $: 标记 $ 变量的值,它应该是来自第二个循环的派生列/标记,不带引号。在这里,我寻找不带引号的数字值。这在最后一种情况下失败。
字符 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
所以第二个循环中的令牌 B 是 132,没有引号。看起来不错。但在第三个循环中,它变为 ... style。
而第二个循环中的第一个标记是 inline;",第三个循环显示:inline;"" "132" "/span" "span
你能解释一下这是怎么可能的吗?我想在收到第二个成员时看到 132。我可以成功解析前 3 个数字,但这是我无能为力的。