wget:如果指向位置X,则不遵循redirect,否则

正如我在这里阅读redirect可以很容易地通过--max-redirect 0 。 但是如果有两种redirect的话,那么好的和坏的。

在我的情况下,好的redirect是:

http://someaddres.com/888.html – > http://someaddres.com/some-string-in-url-describing-page.html

坏的redirect是:

http://someaddres.com/555.html – > http://someaddres.com/

我可以做些什么来缓解redirect?

我能想到的唯一办法就是关闭重定向,然后解析响应(我建议使用sedgrep ,但是我确定还有其他的选择)寻找一个重定向请求。 您可能需要参数--server-response才能获取标题,具体取决于用于重定向的方法。 如果你找到了一个,对重定向目标做一个新的wget(除非你不想重定向)。

正如@ Thor84no所说,一个解决方案可以解析响应。 这是我的:

 REDIRECTED_TO=`wget --max-redirect 0 $ADDRESS 2>&1 | grep "Location" | sed 's|.*\(http://.*/.*\) .*|\1|'` if [ "$REDIRECTED_TO" != "$BAD_REDIRECTION" ]; then wget $REDIRECTED_TO; fi