1 votes

Wget ne sauve pas les liens dans le format souhaité

Quand j'utilise un navigateur pour enregistrer cette page : http://maine.craigslist.org/fuo/ les liens sont enregistrés de manière à ce qu'ils renvoient vers le contenu. comme ceci : href="http://maine.craigslist.org/fuo/4323535885.html"

quand j'essaie d'utiliser wget, les liens sont

$ wget --no-parent maine.craigslist.org/fuo

enregistrés comme : href="askubuntu.com/fuo/4305913395.html"

J'ai essayé les options :

--spider 
--page-requisites 
--user-agent="Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:27.0) Gecko/20100101  Firefox/27.0"

mais les liens sortent tous sans l'URL attachée.

J'ai le reste du script qui fonctionne, pour extraire ma position, et pour créer une nouvelle liste de liens pour les meubles dans ma région. Mais je ne peux pas comprendre comment obtenir le même résultat que lorsque j'enregistre la page via firefox.

Je pensais que l'utilisation de wget serait la plus simple. Peut-être que ce n'est pas correct. Si je peux obtenir le même effet en utilisant un autre logiciel, tant que je peux écrire un script pour le faire fonctionner, je serai content.

3voto

kiri Points 25860

L'option --convert-links devrait faire ce que vous recherchez :

wget --convert-links --no-parent maine.craigslist.org/fuo

Plus d'informations sur cette option et sur ce qu'elle fait se trouvent ci-dessous (copié depuis man wget):

   **\--convert-links**
       Après le téléchargement est terminé, convertir les liens dans le document
       pour les rendre adaptés à une visualisation locale. Cela affecte non seulement les
       hyperliens visibles, mais aussi toute partie du document qui contient des liens vers
       du contenu externe, tels que des images intégrées, des liens vers des feuilles de style,
       des hyperliens vers du contenu non-HTML, etc.

       Chaque lien sera modifié de l'une des deux manières suivantes :

       ·   Les liens vers les fichiers qui ont été téléchargés par Wget seront
           modifiés pour faire référence au fichier auquel ils pointent en tant que lien relatif.

           Exemple : si le fichier téléchargé /foo/doc.html pointe vers
           /bar/img.gif, également téléchargé, alors le lien dans doc.html sera
           modifié pour pointer vers ../bar/img.gif. Ce type de
           transformation fonctionne de manière fiable pour des combinaisons arbitraires de
           répertoires.

       ·   Les liens vers les fichiers qui n'ont pas été téléchargés par Wget seront
           modifiés pour inclure le nom d'hôte et le chemin absolu de l'emplacement
           auquel ils pointent.

           Exemple : si le fichier téléchargé /foo/doc.html pointe vers
           /bar/img.gif (ou vers ../bar/img.gif), alors le lien dans doc.html
           sera modifié pour pointer vers http://hostname/bar/img.gif.

       De cette manière, la navigation locale fonctionne de manière fiable : si un fichier lié
       a été téléchargé, le lien fera référence à son nom local ; s'il n'a pas été
       téléchargé, le lien fera référence à son adresse Internet complète
       plutôt que de présenter un lien cassé. Le fait que les anciens
       liens soient convertis en liens relatifs garantit que vous pouvez déplacer la
       hiérarchie téléchargée dans un autre répertoire.

0voto

Donarsson Points 2588

Si vous consultez le code source de la page en ligne dans votre navigateur, vous verrez que les liens sont relatifs dans le document. Le navigateur les convertit automatiquement, mais wget ne peut pas le faire.

Pour que la page s'affiche correctement dans un navigateur, la solution serait d'utiliser la Balise HTML . Il suffit d'ajouter dans la section head des fichiers téléchargés et tous les liens pointeront vers l'emplacement absolu correct. Vous pouvez le faire automatiquement dans votre script.

Si vous souhaitez que votre script effectue d'autres actions sur les liens, la meilleure solution serait que le script ajoute l'URL de base devant chaque lien.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X