wget:如果指向位置X,请不要遵循重定向,否则请执行

时间:2012-08-23 09:01:39

标签: linux bash http redirect wget

在我阅读here时,--max-redirect 0可以轻松转换重定向。但是有两种重定向的情况:好的和坏的。

在我的情况下,良好的重定向是:

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

错误的重定向是:

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

我可以做些什么来缓解好的重定向?

2 个答案:

答案 0 :(得分:2)

我能想到的唯一方法就是按照你的说法关闭重定向,然后解析回复(我建议使用sedgrep,但我确定还有其他选择)寻找重定向请求。根据用于重定向的方法,您可能需要参数--server-response来获取标头。如果您找到一个,请对重定向目标执行一个新的wget(除非它是您不想重定向到的目标)。

答案 1 :(得分:1)

正如@ 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