1 votes

Le miroir Wget devrait traiter le xml comme du html

Je souhaite créer un miroir d'un site qui possède un sitemap dynamique au format XML.

Bien sûr, je veux que ce sitemap soit téléchargé et traité comme s'il s'agissait d'un fichier html.

J'ai essayé le -F pour ce fichier, mais cela n'a pas fonctionné, indiquant qu'il n'avait pas trouvé d'URL dans le fichier.

Pour l'instant, je suppose que cela ne fonctionnera pas de cette manière (parce que wget n'est pas pour le xml), mais je voulais poser la question pour m'assurer que je n'ai pas oublié quelque chose.

Le contenu du fichier xml se présente comme suit :

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://MY_SITE/wp-content/plugins/google-sitemap-generator/sitemap.xsl"?><!-- sitemap-generator-url="http://www.arnebrachhold.de" sitemap-generator-version="4.0.8" -->
<!-- generated-on="June 11, 2017 6:05 pm" -->
<sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap>
        <loc>http://MY_SITE/sitemap-misc.xml</loc>
        <lastmod>2017-05-31T20:49:06+00:00</lastmod>
    </sitemap>
    <sitemap>
        <loc>http://MY_SITE/sitemap-pt-post-2017-04.xml</loc>
        <lastmod>2017-04-12T16:27:52+00:00</lastmod>
    </sitemap>
    <sitemap>
        <loc>http://MY_SITE/sitemap-pt-post-2017-02.xml</loc>
        <lastmod>2017-02-10T17:50:14+00:00</lastmod>
    </sitemap>
[...]
</sitemapindex>

Et chaque sous-modèle est alors comme :

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://MY_SITE/wp-content/plugins/google-sitemap-generator/sitemap.xsl"?><!-- sitemap-generator-url="http://www.arnebrachhold.de" sitemap-generator-version="4.0.8" -->
<!-- generated-on="June 11, 2017 6:07 pm" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url>
        <loc>http://MY_SITE/32017-SOME_CONTENT/</loc>
        <lastmod>2017-04-12T16:27:52+00:00</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
    </url>
    <url>
        <loc>http://MY_SITE/32017-SOME_OTHER_CONTENT/</loc>
        <lastmod>2017-04-12T16:24:25+00:00</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
    </url>
</urlset>

1voto

P P Eapen Points 1

Votre problème est que, contrairement aux liens en HTML, wget -r n'est pas en mesure de suivre les liens en XML. Vous pouvez contourner ce problème en récupérant d'abord le sitemap, en trouvant toutes les URL qu'il contient et en les récupérant ensuite avec un autre fichier wget , par exemple :

wget --quiet http://example.com/sitemap.xml --output-document - \
    | egrep -o "http://example\.com[^<]+" \
    | wget -i - --wait 0

Ici, la clé est

-i file

--input-file=file

R Si les - i (Utiliser l'option ./- pour lire un fichier littéralement nommé - .) Si cette fonction est utilisée, aucune URL ne doit être présente sur la ligne de commande. S'il y a des URLs sur la ligne de commande et dans un fichier d'entrée, ceux sur les lignes de commande seront les premiers à être récupérés. seront les premiers à être récupérés. [ ] --force-html i d'URL, une par ligne.

Nous proposons ce "fichier" à partir de l'entrée standard après avoir modifié le XML dans la forme souhaitée, c'est-à-dire une URL par ligne avec egrep .

0voto

Pak Points 151

Si le site affiche le plan du site en HTML, mais vous le renvoie en XML, il vous manque probablement un fichier .xsl ou .xslt (eXtensible Stylesheet Language Transformation). Ce fichier définit la manière dont le fichier XML est affiché ; dans ce cas, il s'agit probablement d'un fichier HTML. Si vous le téléchargez et l'affichez, vous obtiendrez probablement ce que vous recherchez. Vous pouvez également apprendre le XSLT et écrire votre propre fichier.

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