我已经看这个有一段时间了,但还没有找到任何答案。
我有一个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ú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.