Bash - 如何从官方插件wordpress页面获取下载URL?

时间:2011-08-20 13:21:02

标签: regex bash sed wget

我正试图直接从官方时代通过bash脚本获取wordpress'插件的下载链接。

例如,http://wordpress.org/extend/plugins/akismet/

处的akismet插件

在HTML源代码中,我们可以轻松识别下载链接的位置:

<div class="col-3">
    <p class="button">
        <a href='http://downloads.wordpress.org/plugin/akismet.2.5.3.zip'>
            Download Version 2.5.3
        </a>
    </p>

我注意到“下载版本”这个词只出现在整个文件中,就在我们想要获得的下载链接之后。

假设我不知道下载链接是什么。问题是如何过滤html代码以获取下载链接(以后我可以将它与wget或curl一起使用)。我所知道的只是插件页面网址。如何过滤html代码以提取下载链接。

谢谢。

2 个答案:

答案 0 :(得分:3)

nadav@shesek:~$ curl -s https://wordpress.org/extend/plugins/akismet/ | egrep -o "https://downloads.wordpress.org/plugin/[^']+"
https://downloads.wordpress.org/plugin/akismet.2.5.3.zip


nadav@shesek:~$ wget `curl -s https://wordpress.org/extend/plugins/akismet/ | egrep -o "https://downloads.wordpress.org/plugin/[^']+"`
--2011-08-20 16:43:33--  https://downloads.wordpress.org/plugin/akismet.2.5.3.zip
Resolving downloads.wordpress.org... 72.233.56.138, 72.233.56.139
Connecting to downloads.wordpress.org|72.233.56.138|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27714 (27K) [application/octet-stream]
Saving to: `akismet.2.5.3.zip'

100%[============================================================================================================================================================>] 27,714      39.9K/s   in 0.7s    

2011-08-20 16:43:35 (39.9 KB/s) - `akismet.2.5.3.zip' saved [27714/27714]

注意grep的-o开关,它只输出匹配的部分而不是整行。

答案 1 :(得分:1)

您可以尝试使用以下正则表达式:

href=['"](.*?)['"]>\s*Download Version [0-9.]+