powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Парсинг ссылок на новости за последние сутки из RSS
2 сообщений из 2, страница 1 из 1
Парсинг ссылок на новости за последние сутки из RSS
    #38692496
AlexanderWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно спарсить ссылки на новости, опубликованные за последние сутки. Причём по моему локальному времени, а не по времени сервера. В качестве цели - возьмём Lenta.ru
Код: c#
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.
...
using System.IO;
using System.ServiceModel.Syndication;
using System.Xml;
 
...
 
        private async void button2_Click(object sender, EventArgs e)
        {
            string url = "http://lenta.ru/rss";
 
            XmlReader reader = XmlReader.Create(url, new XmlReaderSettings() { Async = true });
 
            SyndicationFeed feed = SyndicationFeed.Load(reader);
 
            reader.Close();
            foreach (SyndicationItem item in feed.Items)
            {
                String subject = item.Title.Text;
                String summary = item.Summary.Text;
                ...
                MessageBox.Show(subject);
               
 
            }
        }



Вопросы:

1). Как получить саму ссылку на новости?
В фиде такие строки:
<item>
<guid> http://lenta.ru/news/2014/07/08/change/</guid>
<title>Московская полиция предложила штрафовать подающих милостыню</title>
<link> http://lenta.ru/news/2014/07/08/change/</link>
2). На сервер "Ленты" время UTC+4. У меня UTC+3. Нужно перевести моё время в время сервера, и выбрать новости за последние 24 часа. Как сделать перевод?
3). Что-то форма виснет, несмотря на асинхронное создание ридера. В чём дело?
...
Рейтинг: 0 / 0
Парсинг ссылок на новости за последние сутки из RSS
    #38692561
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexanderWM,

1. Похоже следует использовать item.Links[0]

2. item.PublishDate.LocalDateTime или item.PublishDate.ToOffset(TimeSpan.FromHours(3)).DateTime

3. XmlReaderSettings.Async всего лишь разрешает использование асинхронных методов. Класс SyndicationFeed был добавлен в .NET 3.5 до появления TPL и async/await. Поэтому никакого эффекта это не оказывает. Тебе нужно самостоятельно реализовать асинхронную загрузку или вынести этот код в отдельный поток. Например можно использовать BackgroundWorker.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Парсинг ссылок на новости за последние сутки из RSS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]