web-dev-qa-db-ja.com

Linux上のnginx用のコマンドラインインターフェイスを備えたXMLサイトマップジェネレータはありますか?

XMLサイトマップジェネレーターを探しています。これはコマンドラインからトリガーでき、nginxをサポートし、Linuxで動作します)(Debian)。何をお勧めできますか?

4
automatix

これをグーグルでやってみましたか?最初のページの最初の結果:

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

編集:

コメント通り、私は次のサイトマップジェネレーターを試しました。

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

ダウンロードしたZipバンドルには、いくつかのファイルが含まれています。

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

提供されているexample_config.xmlを使用して、次の方法で変更しました。

<?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>

これは、sitemap.xmlを生成するためのテンプレートとして機能すると思います。現在、ジェネレーターは、ApacheスタイルのアクセスログからのURLのプルまたはURLリストファイルからのプルをサポートしています。私はラップトップからテストしていたので、URLリストファイルからプルすることを選択しました。

URLリストを生成するために、「wget」を使用してサイトをスパイダーしました。

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

または

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

-r:再帰的。 -l2:深さ(設定しない場合、深さ=無制限)。 wgetマニュアルページ を参照してください。

次に、生成されたwget-logからURLを抽出しました。

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

または

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

注:構成ファイルで既に除外されているか、非常に簡単に除外できるため、私の行に含まれていた除外の一部は必要ありませんでした。

次に、ジェネレーターを実行しました。

python sitemap_gen.py --config=example_config.xml 

Sitemap.xmlファイルを作成しました。

スクリプトは、自動化された方法で実行されるように設計されているようです。しかし、それは私のテスト実行では機能しました。 wgetの実行には時間がかかる場合があります。ただし、特別な書き換えなどがない場合は、「find」を使用してサイトの静的コンテンツパスをスキャンし、URLリストファイルにダンプする前にフィルタリングすることができます。

2
Wing Tang Wong