Скачать HTML и изображения с WGet без первых нескольких строк - PullRequest
1 голос
/ 31 марта 2010

Я пытаюсь использовать wget с параметром -p для загрузки определенных документов и изображений, связанных в HTML.

Проблема в том, что сайт, на котором размещен HTML, имеет некоторую не HTML информацию, предшествующую HTML. Это приводит к тому, что wget не интерпретирует документ как HTML и не выполняет поиск изображений.

Есть ли способ заставить wget убрать первые X строк и / или принудительно искать изображения?

Пример URL:

Первые строки содержания:

<DOCUMENT>
<TYPE>S-4
<SEQUENCE>1
<FILENAME>ds4.htm
<DESCRIPTION>FORM S-4
<TEXT>
<HTML><HEAD>
<TITLE>Form S-4</TITLE>

Последние строки содержания:

</BODY></HTML>
</TEXT>
</DOCUMENT>

РЕДАКТИРОВАТЬ: Решения в PHP, безусловно, принимаются.

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Wget фактически обнаруживает теги img. Проблема в том, что на сайте есть вопрос robots.txt , который запрещает / архивирует. Wget выполняет этот запрос и не получает дополнительные документы.

Однако вы можете использовать загруженный документ в качестве входных данных для wget для получения связанных документов:

wget -l 1 --base = url --force-html -i file

0 голосов
/ 31 марта 2010

В PHP вы можете использовать эту функцию для удаления X строк:

function strip_toplines($string,$lines){
    $string = explode(PHP_EOL,$string);
    foreach($string as $line_num => $line){
        if($line_num>($lines - 1)){
            $output .= $line . PHP_EOL;
        }
    }
    return trim($output);
}

, а затем это:

strip_toplines(file_get_contents($url),6);
...