如何从网站下载脚本生成的图像

如何从网站下载脚本生成的图像

我正在尝试镜像一个网站。

它遵循 .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

当然你必须适应这一点。

相关内容