gpt4 book ai didi

linux - 如何使用 wget spider 从 url 列表中识别损坏的 url 并保存损坏的

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:56 25 4
gpt4 key购买 nike

我正在尝试编写一个 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 "$1" || echo "$1"' --

您可以使用 -P <count> xargs 的选项运行 count并行处理。

xargs运行命令 sh -c '....' --对于输入文件的每一行,将输入文件行作为参数附加到脚本。

然后sh内跑wget ... "$1" . ||检查返回状态是否为非零,这意味着失败。在 wget失败,echo "$1"被执行。

Live code link at repl .

您可以过滤 wget -nd -nv 的输出然后对输出进行正则表达式,就像

wget --spider -nd -nv -H --max-redirect 0 -i input 2>&1 | grep -v '200 OK' | grep 'unable' | sed 's/.* .//; s/.$//'

但这看起来不是消耗性的,不是并行的,所以可能更慢并且可能不值得麻烦。

关于linux - 如何使用 wget spider 从 url 列表中识别损坏的 url 并保存损坏的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57779917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com