2010-03-31 6 views
1

J'essaie d'utiliser avec l'option -p pour télécharger des documents spécifiques et les images liées au HTML.Télécharger le HTML et les images avec WGet sans les premières lignes

Le problème est que le site hébergeant le code HTML contient des informations non html précédant le code HTML. Cela provoque wget pour ne pas interpréter le document en tant que HTML et ne recherche pas d'images.

Existe-t-il un moyen pour que wget dépouille les premières lignes X et/ou forcer la recherche d'images?

Exemple URL:

premières lignes de contenu:

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

dernières lignes de contenu:

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

EDIT: Solutions en PHP sont certainement acceptés.

Répondre

1

Wget détecte réellement les balises img. La question est le site Web est la question a un robots.txt qui interdit/Archives. Wget honore cette demande et ne récupère pas les documents supplémentaires.

Cependant, vous pouvez utiliser le document téléchargé en entrée à wget pour récupérer des documents connexes:

wget -l 1 --base = url --force-html -ifichier

+0

Grande trouvaille! Je n'ai même pas pensé à regarder le fichier des robots. Eh bien, votre méthode alternative m'a donné quelques problèmes (en raison de liens d'ancrage dans le fichier), donc à la place, je suis juste en contournant le fichier Robots avec «-e robots = off» Merci! –

0

En PHP, vous pouvez utiliser cette fonction pour extraient des lignes 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); 
} 

puis ceci:

strip_toplines(file_get_contents($url),6); 
+0

C'est vrai, mais j'ai aussi besoin de télécharger toutes les images du HTML. –

Questions connexes