「カール」の答えの一部を切り取る方法

「カール」の答えの一部を切り取る方法

私はこれをしばらく見ましたが、まだ答えが見つかりませんでした。

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

これは、何らかの理由でルートアカウントでこれを実行しないと、次のものが返されるためです。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 "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.

関連情報