![웹페이지에 특정 텍스트가 포함된 경우 URL 목록 만들기 [닫기]](https://linux55.com/image/143260/%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80%EC%97%90%20%ED%8A%B9%EC%A0%95%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EA%B2%BD%EC%9A%B0%20URL%20%EB%AA%A9%EB%A1%9D%20%EB%A7%8C%EB%93%A4%EA%B8%B0%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
"XYZ"라는 텍스트가 포함되어 있는지 여부에 따라 웹페이지의 URL 목록을 만들려고 합니다.
URL 형식은 다음과 같습니다.
https://www.website.tld/page.php?var1=???&var2=static
???는 1부터 시작하여 오류 페이지(예: "ERROR"라는 텍스트가 포함된 페이지)가 나타날 때까지 매번 1씩 증가하는 숫자입니다.
일치하는 URL을 출력 파일에 덤프하고 싶습니다. 나는 컬이 그러한 URL을 순차적으로 스캔할 수 있고 그 출력이 grep에 전달될 수 있다는 것을 읽었습니다. 그러나 grep 출력 후 URL을 검색하고 저장하는 방법을 잘 모르겠습니다.
답변1
다음이 없으면 URL을 생성하는 것이 더 쉬울 수 있습니다 curl
.
for ((i=1; i<1000; i++)); do
url="https://www.website.tld/page.php?var1=${i}&var2=static"
if curl -s "$url" | grep -q XYZ; then
echo "$url" >> positive-matches.txt
fi
od
답변2
나는 작업 스크립트를 만들었습니다. 누구든지 도움이 될 경우를 대비해 공유하세요. @nohillside의 답변이 도움이 되었습니다.
#!/bin/bash
count=1
while true
do
url="https://www.website.tld/page.php?var1=${count}&var2=static"
text=`curl -s "$url"`
if echo "$text" | grep -q "ERROR"
then
break
elif echo "$text" | grep -q "XYZ"
then
echo "$url" >> matches.txt
fi
((count++))
done