Данная заметка является дополнением к опубликованной ранее статье Автоматическое создание файла sitemap, которая частично устарела в связи с последним обновлением webcheck и изменением имен генерируемых им файлов. Также в процессе использования описанного ранее способа генерации файла sitemap были выявлены и устранены некоторые недочеты (попадание дублирующихся и ненужных URL в файл sitemap), которые я не заметил в свое время.
Теперь периодически запускаемый скрипт, предназначенный для генерации файла sitemap, имеет следующей вид (измененные строки подсвечены):
#!/bin/sh lastmod=`date +"%Y-%m-%d"` folder=/tmp/webcheck if [ ! -d $folder ] then mkdir $folder fi cd $folder /usr/local/bin/webcheck -afq http://www.company.com/ cat urllist.html | awk '{if (index($3,"internal")>0 index($2,"?")==0) {print substr($2,7,length($2)-7)}}' | awk '!/(/|.css|.gif|.jpeg|.jpg|.js)$/' | sort | awk '{if (index($1,"catalog")>0) {print $1 " changefreq=daily priority=1.0 lastmod='$lastmod'"} else {print $1 " changefreq=weekly priority=0.5 lastmod='$lastmod'"}}' > url_list.txt /usr/local/bin/python /usr/local/lib/python2.5/site-packages/sitemap_gen.py ––config=/etc/sitemapgen.xml rm -Rf $folder
В 9й строке добавлен ключ -f
, обеспечивающий перезапись генерируемых файлов без запроса подтверждения; в 10й строке имя файла, из которого выбираются URL, изменено на urllist.html
(файл sitemap.html
больше не генерируется); в 12й строке удален вызов uniq(1) (теперь он не нужен) и добавлен вызов awk(1), который удаляет дубликаты URL, отличающиеся от оригиналов наличием слеша в конце, и ненужные в файле sitemap URL таких объектов, как каскадные таблицы стилей, изображения в форматах GIF и JPEG и скрипты на языке JavaScript. Следует отметить, что альтернативой дополнительного вызова awk могут служить параметры EXCLUDED_URLS
и/или YANKED_URLS
, которые можно задать как в файле конфигурации, так и в команде запуска webcheck. Вот и все, желаю быстрой и качественной индексации сайта.
В 12-ой строчке ошибка, лишний символ «|». Не знаю как у вас, но в версии webcheck 1.10.3, имя выходного файла по умолчанию
index.html
а неurllist.html
(10 строка). Благодарен за статью.Прошу прощение за невнимательность, исправил.
Версия webcheck такая же, как у Вас. Есть и
index.html
иurllist.html
.index.html
содержит карту сайта в виде многоуровневого списка,urllist.html
— в виде одноуровневого. Естественно, можно вытащить список URL’ов изindex.html
, здесь, как говорится, на вкус и цвет товарищей нетУ меня стоит python2.6 поставил данный модуль настройки не изменял, но поиск по сайту не идет вообще только главную страницу проверяет и все пишеть следующее сообщение в index.html:
This an overview of the crawled site.
* [14]http://XXXX/
В чем может быть дело?
Для начала поправить в 15 строке python25 на python26, а затем внимательно посмотреть на ключи запуска webcheck, думаю, что других проблем быть не должно.
Да я в ручную запускал webcheck, но получил на выходе практически пустой файл urllist и index.html. Пробывал на разных сайтах но результат один и тот же. Правда сайт у меня на php написан.
Последняя версия webcheck по умолчанию создает вот такие файлы (
ls -l
с рабочего сервера):-rw-r--r-- 1 root wheel 6174 17 мар 04:04 about.html
-rw-r--r-- 1 root wheel 4456 17 мар 04:04 badlinks.html
-rw-r--r-- 1 root wheel 7827156 17 мар 04:04 external.html
-rw-r--r-- 1 root wheel 14403 17 мар 04:04 fancytooltips.js
-rw-r--r-- 1 root wheel 318 17 мар 04:04 favicon.ico
-rw-r--r-- 1 root wheel 73699 17 мар 04:04 images.html
-rw-r--r-- 1 root wheel 634260 17 мар 04:04 index.html
-rw-r--r-- 1 root wheel 2602 17 мар 04:04 new.html
-rw-r--r-- 1 root wheel 8564277 17 мар 04:04 notchkd.html
-rw-r--r-- 1 root wheel 3848 17 мар 04:04 notitles.html
-rw-r--r-- 1 root wheel 2594 17 мар 04:04 old.html
-rw-r--r-- 1 root wheel 747213 17 мар 04:04 problems.html
-rw-r--r-- 1 root wheel 651457 17 мар 04:04 size.html
-rw-r--r-- 1 root wheel 735405 17 мар 04:04 urllist.html
-r--r--r-- 1 root wheel 3953 17 мар 04:04 webcheck.css
-rw-r--r-- 1 root wheel 3711520 17 мар 04:04 webcheck.dat
-rw-r--r-- 1 root wheel 3710094 17 мар 04:04 webcheck.dat~
Среди них нет файла
urllist
(естьurllist.html
). Сайт также написан на PHP, что совершенно не важно, т.к. webcheck ни коим образом не взаимодействует с движком сайта, а запрашивает данные по протоколу HTTP, как обычный Web-браузер. Возможно, у Вас криво установлен python, возможно, отсутствуют какие-то модули (список нужных модулей есть в документации webcheck), возможно сам webcheck установлен или настроен некорректно. У меня под FreeBSD все заработало из коробки (ставил webcheck из портов). Включайте повышенную детальность логов и ищите ошибки, других вариантов, к сожалению, нет.Регулярное выражение для графических файлов и CSS должно быть case-insensitive, иначе файлы типа .JPG вкючаются в sitemap.
awk 'tolower($0) ~ !/(/|.css|.gif|.jpeg|.jpg|.js)$/'
Исправление:
awk 'tolower($0) !~ /(/|.css|.gif|.jpeg|.jpg|.js)$/'
На сайте, для которого это делалось, все расширения в нижнем регистре. Тем не менее, спасибо, Ваш вариант более универсален.
Не подскажете в чем может быть дело?
Все работает отлично кроме одного.
python /usr/local/lib/python2.7/site-packages/sitemap_gen.py ––config=/usr/local/lib/python2.7/site-packages/sitemapgen.xml
Выдает одно и тоже:
"A simple script to automatically produce sitemaps for a webserver,
in the Google Sitemap Protocol (GSP).
Usage: python sitemap_gen.py --config=config.xml [--help] [--testing]
--config=config.xml, specifies config file location
--help, displays usage message
--testing, specified when user is experimenting"
Как будто конфига невидит, хотя он есть! 🙂
Запуская вот так:
python /usr/local/lib/python2.7/site-packages/sitemap_gen.py
Результат такой же, так и не понял по чему не видит 🙁
Ошибка оказалась в копи-пасте 🙂
––config=sitemapgen.xml
(
--
)оказались другими 🙂