【问题标题】:How can I extract meta tags from HTML in a bash/awk script?如何在 bash/awk 脚本中从 HTML 中提取元标记?
【发布时间】:2011-10-26 21:05:00
【问题描述】:

我有一个可用的 Bash 脚本来提取标题标签。我需要有关 AWK 字段分隔符的帮助,以便从 HTML 中提取元标记,如下所示:

<meta name="keywords" content="key1, key2, key3">

我的脚本可以提取标题,但 meta name 不起作用。

#!/bin/bash
for LINE in `cat htmls.txt`

do
   echo $LINE
   awk 'BEGIN{IGNORECASE=1;FS="<title>|</title>";RS=EOF} {print $2}' $LINE |
   awk '{ if (NF > 0) printf("%s\n", $0); }'
done

我想我需要一个正则表达式解决方案。有什么想法吗?

【问题讨论】:

    标签: bash command-line awk metadata


    【解决方案1】:

    首先安装xml2 例如

    sudo apt-get install xml2
    
    wget -q -O - http://www.latin.fm | xml2 | grep meta | awk -F/ '{print $NF}'
    


    输出

    @property=og:title
    @content=Latin FM
    ...
    

    【讨论】:

    • 埃里克,感谢您的评论。我的桌面是 Mac OS,我的操作系统和框架(在 Xcode 中检查)到处都是 xml2,但不知道如何使用它(执行 xml2)。
    【解决方案2】:

    这样做:

    $ awk '/meta name/{ gsub(/.*meta name=\042|\042.*/,"");print }' file
    keywords
    

    要从网站获取,请使用wget

    wget -O- -q $url | awk '/meta name/{ gsub(/.*meta name=\042|\042.*/,"");print }' 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      相关资源
      最近更新 更多