gpt4 book ai didi

bash - 从 curl 的结果中提取特定的字符串

转载 作者:行者123 更新时间:2023-11-29 09:22:27 25 4
gpt4 key购买 nike

给定这个 curl 命令: curl --user-agent "fogent"--silent -o page.html "http://www.google.com/search?q=insansiate "

* 拼写有意错误。我想捕获建议作为我的结果。

我希望能够使用 grep -oE grep 进入 page.html 文件,或者直接从 curl 将其通过管道传输并且从不存储文件。

结果应该是:'实例化'

我只需要“实例化”这个词,或者谷歌自动更正的短语,这就是我所追求的。

这是返回的基本 html:

<span class=spell style="color:#cc0000">Did you mean: </span><a href="/search?hl=en&amp;ie=UTF-8&amp;&amp;sa=X&amp;ei=VEMUTMDqGoOINraK3NwL&amp;ved=0CB0QBSgA&amp;q=instantiate&amp;spell=1"class=spell><b><i>instantiate</i></b></a>&nbsp;&nbsp;<span class=std>Top 2 results shown</span>

所以也许从/到下面的字符串,我希望它足够独特以涵盖我的所有基础。

class=spell><b><i>instantiate</i></b></a>&nbsp;&nbsp;

我一直遇到贪婪 grep 的问题;也许我应该先通过 html 美化工具运行它,以在其中换行或 50。我不知道在 bash 中有什么简单的方法可以做到这一点,这正是我理想中的方法。我真的不想处理启动 perl 并确保我有正确的模块。

有什么建议吗,谢谢?

最佳答案

我相信您已经知道,屏幕抓取是一项微妙的工作。此命令序列也不异常(exception),因为它依赖于页面的特定结构,该结构可能随时更改,恕不另行通知。

grep -o 'Did you mean:\([^>]*>\)\{5\}' page.html | sed 's/.*<i>\([^<]*\)<.*/\1/' page.html

在管道中:

curl --user-agent "fogent" --silent "http://www.google.com/search?q=insansiate" | grep -o 'Did you mean:\([^>]*>\)\{5\}' page.html | sed 's/.*<i>\([^<]*\)<.*/\1/'

这依赖于在“您的意思是:”和您要查找的词后的“</i>”之间找到五个“>”字符。

您是否考虑过其他获取拼写建议的方法,或者您是否对 Google 提供的内容特别感兴趣?

如果您安装了 ispell 或 aspell,您可以:

echo insansiate | ispell -a

并解析结果。

关于bash - 从 curl 的结果中提取特定的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3030908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com