我正在尝试镜像一个网站。
它遵循 .htm 文件的简单方案,但有一个问题。每个文件包含以下行:
<img width="100%" src="http://DOMAIN.org/CREATE_IMAGE.php">
我需要下载此图像,但是 httrack 和 wget 在下载文件时都会忽略脚本输出。
php 脚本不接受任何参数。它内部确定要输出哪个图像。每个 .htm 文件都会获得不同的输出。所以我不能简单地调用 php 文件。它需要作为相应 .htm 文件的某种依赖项进行下载。
我如何配置 wget 或 httrack 或任何其他工具来获取我需要的内容?
答案1
您无法下载并运行 .php,因为它应该在服务器端运行。
假如网站如下:
<html>
...
<img width="100%" src="http://DOMAIN.org/CREATE_IMAGE.php">
...
</html>
当你获取页面源代码时,你实际上看不到它(客户端)。你应该看到的是:
<html>
...
<img width="100%" src="http://DOMAIN.org/IMAGE_LINK_GENERATED_BY_THE_PHP_SCRIPT">
...
</html>
然后,您可以 wget html,解析它,并下载图像。您必须知道文件名的模式或可能的扩展名。如果您不知道,您可以遍历可能的扩展名列表。对于只有一张图片,它应该看起来像这样:
# Get the html for us to parse
wget http://DOMAIN.org/index.html -O index.html
# List of common image extensions
exts=("png" "jpg" "jpeg" "bmp" "gif")
for ext in ${exts[@]}
do
# Parse the html looking for an image
# You'll have to adapt the regex, of course
# man grep to see what each letter stands for
img=`grep -shoiP "DOMAIN\.org/.+\.${ext}" index.html`
if [ "$img" = "" ]
then
continue
else
break
fi
done
wget $img
当然你必须适应这一点。