概要
古いサイトを運用して今更ながら
サイトマップを登録しようという事になった
サイトが古くて誰も構成を把握していなかった
sitemapxmlというサイトを使ったが対応できなかった
wgetのクローリングをつかって
サイト全体を落としてサイトマップを作った時の
事を記載します
経緯について
古いサイトなんだけど
WEBマスターツールをインデックス数が少なかった
また更新をおこなっているがインデックスが下がる事があった
(パンダアップデートかも・・・)
googlefetchで検索エンジンを呼んだりしたが
便利なサイトについて
こちらのサイトにURLを入力してサイトマップを作る
のボタンを押すと自動的につくってくれます~♪
このサイトの欠点
・ユーザーエージェントが変更できない
→ PCとガラゲーのUAしかなかったので
スマフォサイトのURLが全然取れなかった
・該当のページが302のリダイレクトで移動されると
無視されてその事実を把握できない
→ 結果としてURLの100件数未満で少なかった
・URLが1000件までしか作れない
→ 目標は記事数ぐらいの5000件以上だった
準備
linuxの環境
たぶんそのままで使えます
macの環境
brew install wget
Windowsの環境の場合
標準で入っていないのでインストールする
http://memorandum.yamasnet.com/archives/Post-1555.html
作業手順
コマンドライン(ターミナル)を開く
作業用フォルダに移動して下記のコマンドを実行する
cd /tmp wget -r -l 3 -Rjpg,png,css,js,gif -I /sp -X /sp/user -D XXXX.net -E http://XXXX.net/
コマンドの詳細
# 再起を3回おこなう -l 3 # jpg,png,css,js,gifを除外する -Rjpg,png,css,js,gif # spを対象フォルダを設定する -I /sp # /sp/userの除外フォルダを設定する # 除外フォルダはrobots.txtでも代用できます -X /sp/user # 対象ドメインを設定する -D XXXX.net # 保存ファイルの拡張子を.htmlにしてくれます –E
注意点
・サイトが大きい時間がかかる可能性があります
・HTMLの取得作業がサーバーの負荷になる可能性があります
適当な時間でまってくれるオプションの
--random-waitをつけたほうが安全です
・ユーザーエージェントはwgetになってしまうので
--user-agent='Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5'
のオプションで変更できる
実行後の事後作業
コマンドが完了すると
作業用フォルダにXXXX.netというフォルダができるのでそこに移動する
cd XXXX.net
ファイルのみをリストを作成する
Windowsの場合
dir *.hmtl /b /S > filelist.txt
find /tmp/XXXX.jp -type f > /tmp/XXXX.jp.filelist.txt
(フォルダがあると正しいURLがつくれないからです)
作成されたfilelist.txtを秀丸で開く
下記の置換をおこなう
.html → なし %3f → ? \ → / c:/data/wget/XXXX.net → http://XXXX.net (ローカルフォルダによってことなります)
全ての内容を選択してtabを押す
正規表現にして置換する \t → <url><loc> \n → @@@@@@@\n @@@@@@@ → </loc><priority>0.8</priority></url> 正規表現のチェックをはずして & → &
作成したURLを下記のヘッダーとフッタをたす
ヘッダー
<!--?xml version="1.0" encoding="UTF-8"?--> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
フッター
</urlset>
作成したサイトマップをWEBマスターツールに登録します
登録後、ゆっくりゆっくりインデックス化されます
support.google.com
ちょっと手順が長いですが
手動でつくるより簡単に作れます
追記:
正規表現のチェックをはずして & → &
がぬけていたので修正