如何使用 wget spider 从 url 列表中识别损坏的 url 并保存损坏的
how to use wget spider to identify broken urls from a list of urls and save broken ones
我正在尝试编写一个 shell 脚本来从 URL 列表中识别损坏的 URL。
这里是 input_url.csv 示例:
https://www.google.com/
https://www.nbc.com
https://www.google.com.hksjkhkh/
https://www.google.co.jp/
https://www.google.ca/
这是我的作品:
wget --spider -nd -nv -H --max-redirect 0 -o run.log -i input_url.csv
这给了我 '2019-09-03 19:48:37 URL: https://www.nbc.com 200 OK' 对于有效的 url,对于损坏的 url,它给了我 '0 重定向超出。 '
我期望的是我只想将那些损坏的链接保存到我的输出文件中。
样本预期输出:
https://www.google.com.hksjkhkh/
我想我会选择:
<input.csv xargs -n1 -P10 sh -c 'wget --spider --quiet "" || echo ""' --
您可以使用 -P <count>
选项来 xargs
到 运行 count
并行处理。
xargs
运行 输入文件的每一行的命令 sh -c '....' --
将输入文件行作为参数附加到脚本。
然后 sh
在 运行 内 wget ... ""
。 ||
检查 return 状态是否为非零,这意味着失败。在 wget
失败时,执行 echo ""
。
您可以过滤 wget -nd -nv
的输出,然后对输出进行正则表达式,就像
wget --spider -nd -nv -H --max-redirect 0 -i input 2>&1 | grep -v '200 OK' | grep 'unable' | sed 's/.* .//; s/.$//'
但这看起来不是消耗性的,不是并行的,所以可能更慢并且可能不值得麻烦。
我正在尝试编写一个 shell 脚本来从 URL 列表中识别损坏的 URL。
这里是 input_url.csv 示例:
https://www.google.com/
https://www.nbc.com
https://www.google.com.hksjkhkh/
https://www.google.co.jp/
https://www.google.ca/
这是我的作品:
wget --spider -nd -nv -H --max-redirect 0 -o run.log -i input_url.csv
这给了我 '2019-09-03 19:48:37 URL: https://www.nbc.com 200 OK' 对于有效的 url,对于损坏的 url,它给了我 '0 重定向超出。 '
我期望的是我只想将那些损坏的链接保存到我的输出文件中。
样本预期输出:
https://www.google.com.hksjkhkh/
我想我会选择:
<input.csv xargs -n1 -P10 sh -c 'wget --spider --quiet "" || echo ""' --
您可以使用 -P <count>
选项来 xargs
到 运行 count
并行处理。
xargs
运行 输入文件的每一行的命令 sh -c '....' --
将输入文件行作为参数附加到脚本。
然后 sh
在 运行 内 wget ... ""
。 ||
检查 return 状态是否为非零,这意味着失败。在 wget
失败时,执行 echo ""
。
您可以过滤 wget -nd -nv
的输出,然后对输出进行正则表达式,就像
wget --spider -nd -nv -H --max-redirect 0 -i input 2>&1 | grep -v '200 OK' | grep 'unable' | sed 's/.* .//; s/.$//'
但这看起来不是消耗性的,不是并行的,所以可能更慢并且可能不值得麻烦。