我正在尝试根据网页是否包含文本“XYZ”来制作网页的 URL 列表。
URL 的形式如下:
https://www.website.tld/page.php?var1=???&var2=static
???是一个从 1 开始的数字,每次递增 1,直到遇到错误页面(例如包含文本“ERROR”的页面)
我想将正匹配的 URL 转储到输出文件中。我读到curl可以顺序扫描这样的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