我有一个 .csv 文件,其中包含 1000 个别名/缩短链接(例如 bit.ly 等)。我需要找出它们重定向到哪里。有没有简单的程序可以完成这项任务?
答案1
您没有指定您的操作系统。
但是在 Linux 中(安装了 Curl 和 awk),您可以执行以下操作:
#!/bin/bash
while read LINE ; do
NEWURL=$(curl -sIL $LINE 2>&1 | awk '/^Location/ {print $2}' | tail -n1;)
echo "$LINE ; $NEWURL"
done < urls.txt
请注意,未重定向的网站将不会有旧结果之后的结果。
答案2
如果你能找到一种方法将文件保存为每行一个 url 的纯文本,你可以在 Linux/MacOS/*nix 机器上使用以下脚本或赛格威在 Windows 上输出带有 URL 的文本文件。
#!/bin/bash
rm resolved_urls.txt
for url in $(cat url.txt); do
wget -S "$url" 2>&1 | grep ^Location >> resolved_urls.txt
done
nano
如果需要,使用 将上述文本复制到名为 resolve.sh 的文件中,使用 使其可执行chmod +x resolve.sh
,将文件命名为 bit.ly URL 等为 url.txt,确保它与 resolve.sh 文件位于同一文件夹中,然后使用 执行它./resolve.sh
。它将创建一个名为“resolved_urls.txt”的文件,其中包含原始 URL 及其解析后的对应项。
输出
http://bit.ly/1auRnQ9
http://bit.ly/19ZkTAI
在 url.txt 中
http://bit.ly/1auRnQ9 --> Location: http://www.google.com/ [following]
http://bit.ly/19ZkTAI --> Location: http://superuser.com/ [following]
这个脚本远非完美,可能会引起各种 Unix 老手的愤怒,但它至少适用于 bit.ly。如果您有任何与 *nix 相关的问题,请告诉我。
答案3
http://linkpeelr.appspot.com/屏幕上显示,但有一个 API 可用于http://longurl.org/