我可以下载网页中所有以pdf、zip等扩展名结尾的链接。
但是一个网站有超过 50 个链接,结尾如下:“http://... ... /showDocument.php?DocumentID=121” “http://... ... /showDocument.php?DocumentID=33” “http://... ... /showDocument.php?DocumentID=67”
当我将链接复制到我的下载程序(Orbit)时,它无法理解它们链接到 pdf 文件。并下载 php 文件。我该如何解决这个问题并轻松下载所有链接?谢谢
答案1
这可能是程序的限制。另外,如果您检查一下,您可能不会在下载的文件中看到原始 PHP——它可能是您的 PDF。尝试更改扩展名,看看您是否可以在 PDF 阅读器中打开它。
答案2
Web 服务器在 HTTP 标头中返回您正在下载的文件类型(称为 MIME 类型),大多数浏览器会使用该类型来确定如果该文件不是它本身可以处理的文件,则使用哪个应用程序来打开它。这就是浏览器知道需要启动 Word、Excel 或 Acrobat(或任何其他程序)来打开文件的方式。我猜 Orbit 只是使用文件扩展名。由于可以编写 PHP 代码来动态返回任何类型的文件,因此实际上无法仅通过检查文件扩展名来确定正在下载哪种文件类型。
如果是这种情况,那么这是您的下载程序的限制,您需要寻找一个能够根据 Web 服务器发送的 Content-Type HTTP 标头检查文件类型的下载程序。
答案3
可能是您的程序使用了错误的文件名,例如,该文档名为“showDocument.php”,但实际上它是一个 PDF --> 尝试重命名它。
答案4
您可以使用 wget。
#/bin/bash
for i in {0 .. 50}
do
wget http://... ... /showDocument.php?DocumentID=${i}
done
假设“数字”介于 0 到 50 之间。如果它们是随机数,则只需将 for 循环的上限设置得非常高(即 1000)并使 wget 忽略错误。