如何剪切“卷曲”答案的一部分

如何剪切“卷曲”答案的一部分

我已经看这个有一段时间了,但还没有找到任何答案。

我有一个curl命令向服务器发送 HTTP POST 请求,然后我创建了一个名为“tmg.sh”的脚本,如下所示:

#! /bin/bash
echo "There you go:"
sleep 3s
curl "http://tmg.xunta.gal/consulta-tarxeta?blah_blah_blah&numero=$1"
echo "Thanks!"

就在那时,当我在终端上写下一个命令时:

chmode u+x ./tmg.sh

因为出于某种原因,即使在 root 帐户中,如果我不这样做,它也会返回:bash: ./tmg.sh: Permission denied,但无论如何,让我们继续,在我完成此操作之后,当我编写以下内容时:

./tmg.sh NUMBER_GOES_HERE

这个数字就是变量,然后我得到这个答案:

There you go:
<html code not relevant>
<div class="infoContido"><p>Non hai ningunha recarga para o n&uacute;mero de tarxeta introducido.</p></div>
<html code not relevant>
Thanks!

对了,我的问题来了,我怎样才能得到只是整个 HTML 代码的一部分?我的意思是,我只想要网站的一部分,如下所示:

Non hai ningunha recarga para o número de tarxeta introducido.

另外,我想注意到,当我得到满的页面,有很多<p><div>...这可能吗?如果是,我应该如何编辑我的脚本才能得到这部分?

非常感谢您,祝您度过愉快的一天!

答案1

您没有解释如何识别您想要的文本。

如果您只想要文本,请尝试使用links

#! /bin/bash
echo "There you go:"
sleep 3s
links -dump "http://tmg.xunta.gal/consulta-tarxeta?blah_blah_blah&numero=$1"
echo "Thanks!"

如果行标识符是“infoContido”,这可能是解决方案:

#! /bin/bash
echo "There you go:"
sleep 3s
curl "http://tmg.xunta.gal/consulta-tarxeta?blah_blah_blah&numero=$1" | grep infoContido | cut -d\> -f2 
echo "Thanks!"

答案2

如果您想要的 div 对象的类始终是infoContido,您可以使用小狗使用如下命令:

curl "http://tmg.xunta.gal/consulta-tarxeta?blah_blah_blah&numero=$1" | pup "div.infoContido"

答案3

将curl 输出发送到新文件。例如上面提到的情况。

curl "http://tmg.xunta.gal/consulta-tarxeta?blah_blah_blah&numero=$1" | tee -a /var/tmp/mycurl

现在您需要做的就是从这个新文件中 grep 您的行。

cat /var/tmp/mycurl | grep Non hai ningunha recarga para o número de tarxeta introducido.

相关内容