我正试图直接从官方时代通过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代码以提取下载链接。
谢谢。
答案 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.]+