웹페이지에 특정 텍스트가 포함된 경우 URL 목록 만들기 [닫기]

웹페이지에 특정 텍스트가 포함된 경우 URL 목록 만들기 [닫기]

"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

관련 정보