Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
#1

Создание RSS агрегатора - C++

04.07.2012, 21:23. Просмотров 1840. Ответов 30
Метки нет (Все метки)

возникла срочная необходимость создать простенький RSS,который получает новости,а отображает их в дефолтном браузере,однако ни с чем подобным не сталкивался прежде.я не прошу готовый код,я лишь прошу подсказать мне какие шаги нужно сделать,если вы знаете уже сделанный пример,скиньте пожалуйста ссылку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 21:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создание RSS агрегатора (C++):

Поиск по .txt файлу (RSS)
Доброго времени суток. Пытаюсь придумать что-нибудь, чтобы работать с RSS без...

Создание RSS
Здрасте. Подскажите я уже разобрался как создать xml -файл через данные с...

Создание Rss ридера
Мне нужно прочитать RSS канал и вывести его на страничку, это можно сделать с...

Создание RSS реадера
Я хочу прикрутить RSS ленту к pull to refresh Тоесть не выводить на екран всю...

Создание RSS-reader с оффлайн базой
нужно создать программу в Windows Forms, т.е. рсс ридер с оффлайн базой,но вся...

Создание RSS на базе Material Design
Добрый день! Подсел на тему Материал Дизайн. Уж очень она мне понравилась. Сам...

30
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
04.07.2012, 21:55 #2
Ну, а скачать html + сохранить + парсить + открыть в браузере результат...
Не канает?
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 22:02  [ТС] #3
да дело в том,что ничего из этого н едоводилось делать,в этом вся беда
0
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
04.07.2012, 22:09 #4
А на чем и под чем пишешь?

html - страницу можно скачать библиотекой curlib
Парсить boost/regex.

А авторизация нужна?


http://www.cyberforum.ru/cpp-linux/thread608789.html
http://www.cyberforum.ru/cpp-builder/thread610717.html

http://www.cyberforum.ru/cpp-beginners/thread536710.html
1
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 22:30  [ТС] #5
пишу на С++
нужно лишь получить новости и отобразить заголовок новости и часть новости

Добавлено через 29 секунд
Цитата Сообщение от Avazart Посмотреть сообщение
html - страницу можно скачать библиотекой curlib
вы не могли привести ссылку на пример
0
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
04.07.2012, 22:33 #6
пишу на С++
Я имею ввиду среду разработки и OS.
вы не могли привести ссылку на пример
Привел - первая ссылка в конце темы.
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
04.07.2012, 22:34  [ТС] #7
Visual Studio 2010 & Windows
0
dr.curse
392 / 348 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
05.07.2012, 15:09 #8
Цитата Сообщение от Avazart Посмотреть сообщение
html - страницу можно скачать библиотекой curlib

Не по теме:

но вообщето не curlib а libcurl :)


а вообще лучше качать самому, составить GET запрос не так уж и сложно

Цитата Сообщение от Avazart Посмотреть сообщение
Парсить boost/regex.
а зачем regex? RSS этож xml файл тоесть лучше использовать xml парсер скажем expat, tinyxml
1
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
05.07.2012, 15:29 #9
а вообще лучше качать самому
Это почему?
Тут почему-то высказали другое мнение http://www.cyberforum.ru/cpp-linux/thread608789.html
0
dr.curse
392 / 348 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
05.07.2012, 15:38 #10
Avazart, а я и неговорил все качать самому, мой совет был только для этой программы. Давайте рассуждать логически, зачем использовать curl для закачки одного маленького файла?
0
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
05.07.2012, 15:42 #11
Ну, а что использовать?
0
dr.curse
392 / 348 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
05.07.2012, 15:44 #12
winsock или сокеты беркли, смотря на какой платформе
0
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
07.07.2012, 00:10 #13
Но это посути ручками.
0
dr.curse
392 / 348 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
07.07.2012, 01:02 #14
Цитата Сообщение от Avazart Посмотреть сообщение
Но это посути ручками.
мне так больше нравится, и кстати если добавить один #ifdef, будет кроссплатформенность
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
07.07.2012, 17:51  [ТС] #15
есть проблема с парсингом xml документа
вылетает ошибка при компиляции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TiXmlDocument* doc = new TiXmlDocument("C:\\data.xml");
 
    bool LoadOK = doc->LoadFile();
 
    if(LoadOK)
    {
        cout << "error\n";
        return 0;
    }
 
    TiXmlElement *element = doc->FirstChildElement("channel");
 
    element = element->FirstChildElement("item")//здесь ошибка
 
    int count = 0;
 
    while(element != NULL)
    {
        TiXmlElement *title = element->FirstChildElement("title");
        cout << title->GetText() << endl;
        element->NextSiblingElement();
    }
0
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
09.07.2012, 01:47 #16
Ну наверное следовало бы и сам xml выложить, ошибку указать
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
09.07.2012, 01:53 #17
Цитата Сообщение от alexey31415 Посмотреть сообщение
C++
1
element = element->FirstChildElement("item")//здесь ошибка
Ну здесь-то и в самом деле ошибка. Не хватает точки с запятой в конце. Или кто-то нас дурит и точка с запятой там есть?
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 02:24  [ТС] #18
Цитата Сообщение от grizlik78 Посмотреть сообщение
точка с запятой там есть
да это тогда было,я конечно поставил ;
вот файл
а вот код,что есть на данный момент
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "tinyxml.h"
#include "tinystr.h"
 
#include<iostream>
 
using namespace std;
 
#pragma comment(lib, "tinyxml.lib")
 
int main()
{
 TiXmlDocument doc("C:/data.xml");
 
 /*TiXmlDeclaration dec; 
 dec.Parse( "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>", 0, TIXML_ENCODING_UTF8 ); 
 doc.InsertEndChild( dec );
 
 doc.SaveFile();*/
 
 bool LoadOK = doc.LoadFile();
 
 if(!LoadOK)
 {
  cout << "error\n";
  system("pause");
  return 0;
 }
 
 TiXmlElement *rss = doc.FirstChildElement("rss");
 
 TiXmlElement *channel = rss->FirstChildElement("channel");
 
 channel = channel->FirstChildElement("title");
 
 int count = 0;
 
 while(channel != NULL)
 {
  TiXmlElement *title = channel->FirstChildElement("title");
  cout << title->GetText() << endl;
  channel=channel->NextSiblingElement();
 }
 
 system("pause");
 
 return 0;
 
}
Добавлено через 2 минуты
xml файл
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
09.07.2012, 02:33  [ТС] #19
выкидывается ошибка
и открывается файл со следующей функцией
C++
1
2
3
4
5
6
7
8
9
10
const TiXmlNode* TiXmlNode::FirstChild( const char * _value ) const
{
    const TiXmlNode* node;
    for ( node = firstChild; node; node = node->next )
    {
        if ( strcmp( node->Value(), _value ) == 0 )//сюда указывает стрелка,значит ошибка в этой строке
            return node;
    }
    return 0;
}
0
Миниатюры
Создание RSS агрегатора  
Avazart
Эксперт С++
7685 / 5594 / 543
Регистрация: 10.12.2010
Сообщений: 25,077
Записей в блоге: 17
09.07.2012, 16:41 #20
Выложите C:/data.xml

Как я понимаю можно использовать еще libxml2 как парсер.
( http://www.cyberforum.ru/blogs/131347/blog538.html )
0
09.07.2012, 16:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 16:41
Привет! Вот еще темы с решениями:

Создание RSS ленты канала YouTube
Всем здрасти! Понадобилось создать RSS ленту своего канала YouTube....

Количество новостей rss ленты и подключения несколько rss лент
Здравствуйте, возник такой вопрос, у меня есть rss-лента, одна она работает...

Монетизация агрегатора
Допустим есть сайт с популярным контентом и на нем можно разместить рекламу...

Выбор cms для агрегатора
Подскажите, какую cms выбрать для агрегатора. Агрегатор будет собирать цены на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru