FreeBSD: Обновленный скрипт стыковки google-sitemapgen и webcheck
Данная заметка является дополнением к опубликованной ранее статье Автоматическое создание файла 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 из портов). Включайте повышенную детальность логов и ищите ошибки, других вариантов, к сожалению, нет.