0

我想使用批处理检索此网页中链接的特定部分

首先,为了检索这个网页,我使用了这个命令:

wget --convert-links -N "http://dl.bukkit.org/downloads/bukkit/list/rb/"

然后,在这个网页中,我想得到这一行:

<a href="http://dl.bukkit.org/downloads/bukkit/get/01844_1.4.7-R1.0/bukkit.jar" class="tooltipd" title="Download Bukkit, version 1.4.7-R1.0">

之后,只检索链接中的构建名称

01844_1.4.7-R1.0

所以,我用了这个:

for /f "delims=" %%i in ('grep "/downloads/bukkit/view/" index.html ^| head --lines=2') do set build=%%i
del index.html
set build=%build:~68,16%
echo %build%

总而言之,我可以检索我想要的内容,但我认为还有另一种方法可以做到这一点,因为您可以猜到,构建名称的长度并不总是相同(有时是“00718_1.1-R4 " = 12 个字符仅用于此构建名称)我使用“固定”方法(设置 build=%build:~68,16%)来检索它...

那么,如果有人有最好的方法,可以用斜杠作为分隔符吗?但我不知道该怎么做。

预先感谢您的帮助。

祝你有美好的一天 !

4

2 回答 2

1

GNU sed

for /f %%i in ('wget "http://dl.bukkit.org/downloads/bukkit/list/rb/" --output-document=- 2^>nul^|sed -n "/downloads\/bukkit\/get\//{s:.*/\([R0-9_.-]\+\).*:\1:p;q}"') do set "build=%%i"
echo %build%

不需要index.html

于 2013-06-08T16:52:04.507 回答
0
del index.html
FOR /f "tokens=6delims=/" %%t IN ("%build%") DO SET build=%%t
echo %build%

应该返回所需的字符串。

于 2013-06-08T15:16:47.720 回答