regex
  • bash
  • sed
  • wget
  • 2011-08-20 57 views 0 likes 
    0

    我想直接从它的官方时代通过bash脚本获得wordpress插件的下载链接。Bash - 如何从官方插件wordpress页面获取下载url?

    例如,在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)。我所知道的是插件页面url。如何过滤HTML代码以提取下载链接。

    谢谢。

    +0

    “问题是我如何在bash中做到这一点,所以我可以在脚本中使用。” , 做什么 ?下载文件? –

    +0

    我可以在下载链接后下载该文件。所以,我首先需要得到这个链接。要下载,我将使用wget。 – Roger

    回答

    3
     
    [email protected]:~$ 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 
    
    
    [email protected]:~$ 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] 
    

    通知的-o开关grep的,这使得它输出匹配的部分改为只整条生产线。

    +0

    说我不知道​​什么是下载链接。我所知道的是插件页面url。如何过滤HTML代码以提取下载链接。 – Roger

    +0

    这正是这样做的。仔细看看它。 – shesek

    +0

    确实如此。聪明而锐利。 – Roger

    1

    你可以用以下的正则表达式尝试:

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

    任何想法我可以把它放入sed? – Roger

    相关问题