Чтобы создать карту блога на blogspot.com (я рассматриваю в качестве примера свой лытдыбровый блог), можно воспользоваться головой и данными из виджета "Архив блога". Изучим код страницы. Виджет оформлен как div с id='ArchiveList'. Внутри дива — ненумерованный список. Элементы UL, группирующие ссылки по месяцам, имеют classname='posts'. Сразу становится понятно, что для создания карты сайта достаточно будет выбрать все элементы LI, находящиеся внутри упомянутых UL. Это делается в два счета при работе с MSHTML.
Обработчик кнопки "Start":
procedure TBlogspotSiteMapF.btnStartClick(Sender: TObject);
var
Doc : IHTMLDocument2;
DocAll,
DocLi : IHTMLElementCollection;
ParentElement,
DocElement : IHtmlElement;
i : integer;
begin
WebBrowser.Navigate(edtURL.Text);
while WebBrowser.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
end;
Doc := WebBrowser.Document as IHTMLDocument2;
if Assigned(Doc) then
begin
DocAll := Doc.all;
DocLi := DocAll.Tags('LI') as IHTMLElementCollection;
for i := 0 to DocLi.length-1 do
begin
DocElement := DocLi.Item(i, 0) as IHtmlElement;
ParentElement := DocElement.parentElement;
if ParentElement.className = 'posts' then
Memo.Lines.Add(DocElement.innerHTML);
end;
end;
end;
В результате получаем такую картину:
После парсинга первоначального списка обнаружились некоторые ньюансы. А именно: записи, имеющие слишком длинные названия, обрезаются по количеству символов (на рисунке для примера я обвела красным ссылку и пример заголовка одного из таких сообщений). Но это не страшно и вопрос решается очень просто: надо скачать страницу по ссылке и достать из html-кода полный заголовок (внутри h3 с classname = 'post-title entry-title'). В принципе, я думаю, что данная процедура необязательна, так как карты сайтов используются в основном поисковиками. Тем более, что если записей в блоге очень много — это мероприятие может оказаться затратным :)
Чтобы быть в курсе обновлений блога, можно подписаться на RSS.
весьма интересно, хотя в блоггере вроде бы и так можно через API получить sitemap....
ОтветитьУдалитьи спасибо за блог - подписался и буду сегодня читать "от корки до корки" ;)
Да, наверняка есть API, я не искала) Но блог о парсинге — поэтому привела такой пример, чтобы не ходить далеко))
ОтветитьУдалитьА почему бы не пользоваться http://red-slider.blogspot.com/feeds/posts/default?alt=rss
ОтветитьУдалитькак картой сайта?
Соответственно red-slider замените на название вашего блога
pori, потому что RSS — это не карта сайта по определению %)
ОтветитьУдалитьAndrey K
ОтветитьУдалитьа что значит можно через API получить sitemap? это какой-то виджет? можете подробнее подсказать?
заранее спасибо..
и еще из статьи так понял, что эта карта сайта не так уже и нужна.. можно и без нее обойтись? или все-таки нужна? я не понял ее необходимость в блоггере? везде пишут, что типа нужна.. но насколько нужна? может быть не нужно париться - и так все оставить?
@Мария,
и еще.. вы меняетесь ссылками? мой блог близкой тематики. - можем обменяться постовыми или обзорами
блог http://sdelaisite.blogspot.com/
Даниил, про нужность карты блога и ее "полезность" для поисковиков я точно не скажу. Я придерживаюсь мнения, что она нужна, но являюсь сторонником "интеллектуальной" карты, т.е. когда автор блога вручную систематизирует материалы и оформляет их в виде содержания. Но у самой руки до того, чтобы сделать такую карту, не доходят.)
ОтветитьУдалитьПо поводу ссылок - обмениваюсь, но предпочитаю блоги с ненулевыми показателями.
P.S. сори за запоздалый ответ, была в отпуске.
@Masha,
ОтветитьУдалитьа можете привести пример "интеллектуальной" карты сайта или блога? т.е. это некая страница в блоге - где гиперссылками вы вставляете очередной свой пост в какую-то рубрику? или я что-то не так понимаю ?
Даниил, именно так. Например, мне очень нравится, как содержание сайта оформлено у Андрея Морковина.
ОтветитьУдалить@Masha,,
ОтветитьУдалитьинтересно - мне показалось что это содержание скорее для стационарного сайта, а не постоянно обновляемого блога..
т.к. в блоге постоянно появляются новые посты и их куда-то нужно постить.. - а не будет ли эта страница блога рассматриваться поисковиком как линкопомойка?
Ну да, это зависит от еще от тематики блога. Если блог широкой тематики и содержит множество постов - будет проблематично. Но для моего блога как раз подходит такой вариант.
ОтветитьУдалитьПоисковики "в курсе" про карты сайтов и не будут их рассматривать как линкопомойки, имхо.