【发布时间】:2012-06-22 01:27:53
【问题描述】:
我试图找到一种使用 wget 将重定向的网站 URL 列表记录到一个文件中的方法。 例如:
www.website.com/1234 现在重定向到 www.newsite.com/a2as4sdf6nonsense
和
www.website.com/1235 现在重定向到 www.newsite.com/ab6haq7ah8nonsense
Wget 会输出重定向,但不会记录新位置。我在终端得到这个:
HTTP request sent, awaiting response...301 moved permanently
Location: http.www.newsite.com/a2as4sdf6
...
我只想将该新 URL 捕获到文件中。
我用的是这样的东西:
for i in `seq 1 9999`; do
wget http://www.website.com/$i -O output.txt
done
但这会将每个网页的源代码输出到该文件。我试图只检索重定向信息。另外,我想在每次检索新 URL 时在同一个输出文件中添加一个新行。
我希望输出看起来像:
www.website.com/1234 www.newsite.com/a2as4sdf6nonsense
www.website.com/1235 www.newsite.com/ab6haq7ah8nonsense
...
【问题讨论】:
-
如果您愿意考虑 Perl,而不是 wget,您可以尝试使用 Perl 模块 WWW::Mechanize,如该解决方案中所述:stackoverflow.com/questions/10922054/…
-
这对我有用。谢谢!我现在唯一陷入困境的部分是使用提到的代码并在 Perl 中循环。我该如何运行: www.website.com/n 其中 n 是从 1 到 100 的数字?
-
foreach(1..100) { my $site = "www.website.com/$_"; # do something with $site; } -
完美。感谢您的帮助。
标签: shell url redirect wget ping