使用bash在网页中搜索

时间:2013-11-23 22:18:48

标签: bash full-text-search substring

我正在尝试检索网页,搜索某个模式,检索该值并使用它进行一些计算。我的问题是,我似乎无法弄清楚如何在给定的字符串中搜索模式。

让我说我检索一个像这样的页面

content=$(curl -L http://google.com)

现在我想搜索我感兴趣的值,这基本上是一个html标签。

<div class="digits">123,456,789</div>

不,我确实尝试使用sed找到这个。我的尝试看起来像这样:

n=$(echo "$content"|sed '<div class=\"digits\">(\\d\\d,\\d\\d\\d,\\d\\d\\d)</div>')

我希望每次都提取该值,比如10分钟,保存并估计何时会满足124,xxx,xxx。

我的问题是我真的不知道如何保存这些值,但我想我可以自己解决这个问题。我更感兴趣的是如何检索那个子串因为我总是因为“&lt;”而得到错误。

我希望有人能够并愿意帮助我:)。

2 个答案:

答案 0 :(得分:1)

最好使用的正确解析器:

xmllint --html --xpath '//*[@class="digits"]' http://domain.tld/ 

但似乎您在评论中提供的示例网址不包含此类名。您可以先运行来证明:

curl -Ls url | grep -oP '<div\s+class="digits">\K[^<]+'

答案 1 :(得分:0)

最好使用@sputnick建议的正确解析器。

或者您可以尝试这样的事情:

curl -L url | perl -ne '/<div class="digits">([\d,]+)<.div>/ && {print $1, "\n"}'