나는 이것을 한동안 보았지만 아직 답을 찾지 못했습니다.
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ú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.