web-dev-qa-db-fra.com

Existe-t-il un générateur de sitemap XML avec une interface de ligne de commande pour nginx sous Linux?

Je cherche un générateur de sitemap XML qui peut être déclenché à partir de la ligne de commande, prend en charge nginx et fonctionne sur Linux (Debian). Que peux-tu recommander?

4
automatix

Avez-vous essayé Google? Premier résultat sur la première page:

https://code.google.com/p/sitemap-generators/wiki/SitemapGenerators

Modifier:

Selon les commentaires, j'ai essayé le générateur de sitemap suivant:

http://sitemap-generators.googlecode.com/svn/trunk/docs/en/sitemap-generator.html

Le bundle Zip téléchargé contient quelques fichiers:

drwxr-xr-x  19 user  group     646 Apr 10 05:22 .
drwxr-xr-x   3 user  group     102 Apr 10 05:12 ..
-r--r-----@  1 user  group      23 Jun 16  2005 AUTHORS
-r--r-----@  1 user  group    1791 Jun 16  2005 COPYING
-r--r--r--@  1 user  group    2267 Dec  5  2005 ChangeLog
-rw-r--r--@  1 user  group     258 Dec  5  2005 PKG-INFO
-r--r--r--@  1 user  group    1111 Dec  5  2005 README
drwxr-xr-x   3 user  group     102 Apr 10 05:16 build
-r--r--r--@  1 user  group    5662 Sep  7  2005 example_config.xml
-r--r-----@  1 user  group     996 Jun 16  2005 example_urllist.txt
-r-xr-xr-x@  1 user  group     317 Dec  5  2005 setup.py
-r-xr-xr-x@  1 user  group   73063 Dec  5  2005 sitemap_gen.py
-r-xr-xr-x@  1 user  group   28551 Sep  7  2005 test_sitemap_gen.py

En utilisant le fichier example_config.xml fourni, je l’ai modifié de la manière suivante:

<?xml version="1.0" encoding="UTF-8"?>

<site
  base_url="http://YOURDOMAIN.com/"
  store_into="/var/www/sitemap_gen-1.4/sitemap.xml"
  verbose="1"
  >

  <url  href="http://YOURDOMAIN.com/stats?q=name"  />
  <url
     href="http://YOURDOMAIN.com/stats?q=age"
     lastmod="2004-11-14T01:00:00-07:00"
     changefreq="yearly"
     priority="0.3"
  />


  <urllist  path="urllist.txt"  encoding="UTF-8"  />

  <!-- Exclude URLs that end with a '~'   (IE: emacs backup files)      -->
  <filter  action="drop"  type="wildcard"  pattern="*~"           />

  <!-- Exclude URLs within UNIX-style hidden files or directories       -->
  <filter  action="drop"  type="regexp"    pattern="/\.[^/]*"     />

</site>

Je pense que cela sert de modèle pour générer le sitemap.xml. Désormais, le générateur prend en charge l'extraction d'URL à partir de journaux d'accès de style Apache ou à partir d'un fichier de liste d'URL. J'ai choisi de tirer d'un fichier de liste d'URL, car je testais depuis mon ordinateur portable.

Pour générer la liste d'URL, j'ai utilisé 'wget' pour spider le site:

wget -mk --spider -r -l2 http://YOURDOMAIN.COM/

ou

wget -mk --spider -r -l2 http://YOURDOMAIN.COM/ -o urlinfolist.txt

-r: récursif; -l2: profondeur (si non défini, profondeur = illimité). Voir wget page de manuel .

Ensuite, extrayez les URL du wget-log généré:

cat wget-log | tr ' ' '\012' | grep "^http" | egrep -vi "[?]|[.]jpg$" | sort -u > urllist.txt

ou

cat urlinfolist.txt | tr ' ' '\012' | grep "^http" | egrep -vi "[?]|[.]jpg$" | sort -u > urllist.txt

Remarque: Certaines des exclusions que j'avais dans ma ligne n'étaient pas nécessaires car le fichier de configuration les excluait déjà ou pouvait très facilement les exclure.

Puis, a lancé le générateur:

python sitemap_gen.py --config=example_config.xml 

Qui a produit le fichier sitemap.xml.

Le script semble conçu pour fonctionner de manière automatisée. Mais cela a fonctionné pour mon test. Le wget peut prendre un certain temps à courir. Toutefois, si vous n'avez pas de réécriture spéciale/etc, vous pouvez simplement analyser le chemin du contenu statique de votre site avec une "recherche" et éventuellement filtrer dessus avant de le transférer dans le fichier de liste d'URL.

2
Wing Tang Wong