1

Я пытаюсь отразить сайт.

Он следует простой схеме файлов .htm, но есть одна загвоздка. Каждый файл содержит следующую строку:

<img width="100%" src="http://DOMAIN.org/CREATE_IMAGE.php">

Мне нужно скачать это изображение, но httrack и wget игнорируют вывод скрипта при загрузке файла.

Скрипт php не принимает никаких параметров. Он определяет, какое изображение выводить внутри. Каждый файл .htm получает различный вывод. Поэтому я не могу просто вызвать php-файл. Его нужно скачать как некую зависимость соответствующего файла .htm.

Как настроить wget, httrack или любой другой инструмент, чтобы получить то, что мне нужно?

1 ответ1

0

Вы не можете скачать и запустить .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

Конечно, вам придется адаптировать это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .