Код для получения новостей с сайта buh.ru, используется RSS-канал http://www.buh.ru/rss/rss-2.0.jsp
Данный код для 7.7, при использовании в 8-ой версии нужно заменить СоздатьОбъект( на Новый COMОбъект(, остальное вроде так же.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
Функция ВытащитьДату(Стр) парсер=СоздатьОбъект("VBScript.RegExp"); парсер.Global=-1; парсер.IgnoreCase =-1; стрМес="Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec"; парсер.Pattern="(\d\d)\s(("+стрМес+"))\s(\d{4})"; рез = парсер.Execute(Стр); Если рез.Count>0 Тогда рез_ = рез.Item(0); чч=Число(рез_.Submatches(0)); мст=рез_.Submatches(1); где=Найти(стрМес,мст); мм=цел(где/4)+1; гг=Число(рез_.Submatches(3)); дат=Дата(гг,мм,чч); Иначе дат=0; КонецЕсли; Возврат дат; КонецФункции Процедура Сформировать() ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("ИД","Число"); ТЗ.НоваяКолонка("Дата","Дата"); ТЗ.НоваяКолонка("Заголовок","Строка"); ТЗ.НоваяКолонка("Ссылка","Строка"); ТЗ.НоваяКолонка("Текст","Строка"); Состояние("Получение данных с сайта www.buh.ru"); //ТаймАут поставьте в зависимости от качества подключения ТаймАут=100000; IE=СоздатьОбъект("InternetExplorer.Application"); IE.navigate("http://www.buh.ru/rss/rss-2.0.jsp"); Пока IE.readyState<4 Цикл ТаймАут=ТаймАут-1; Если ТаймАут=0 Тогда Предупреждение("Не удалось получить данные с сайта www.buh.ru",10); Возврат; КонецЕсли; КонецЦикла; //версия 0.1 для v7plus.dll //ХМЛ=СоздатьОбъект("AddIn.XMLParser"); //ХМЛДок=ХМЛ.СоздатьДокумент(); //ХМЛДок.Загрузить(oIE.document.XMLDocument); //Выборка=ХМЛДок.ВыбратьУзлы("//item"); //Для ии=0 По Выборка.КоличествоУзлов()-1 Цикл // ЭлНовость=Выборка.ПолучитьУзел(ии); // ТЗ.НоваяСтрока(); // ТЗ.Дата=ВытащитьДату(ЭлНовость.ВыбратьУзел("./pubDate").Текст); // ТЗ.Заголовок=ЭлНовость.ВыбратьУзел("./title").Текст; // ТЗ.Ссылка=ЭлНовость.ВыбратьУзел("./link").Текст; // ТЗ.Текст=ЭлНовость.ВыбратьУзел("./description").Текст; //КонецЦикла; //версия 0.2 для MSXML ХМЛДок=СоздатьОбъект("MSXML2.DOMDocument");; ХМЛДок.async=0; ХМЛДок.resolveExternals=0; ХМЛДок.load(IE.document.XMLDocument); Выборка=ХМЛДок.selectNodes("//item"); Для ии=0 По Выборка.length-1 Цикл ЭлНовость=Выборка.item(ии); ТЗ.НоваяСтрока(); ТЗ.Дата=ВытащитьДату(ЭлНовость.selectSingleNode("./pubDate").text); ТЗ.Заголовок=ЭлНовость.selectSingleNode("./title").text; ТЗ.Ссылка=ЭлНовость.selectSingleNode("./link").text; ТЗ.Текст=ЭлНовость.selectSingleNode("./description").text; КонецЦикла; //Все. Мы получили ТЗ с последними новостями КонецПроцедуры |
К сожалению, автор не известен.