Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,274
Записей в блоге: 2
Завершенные тесты: 1
#1

Реальная задача для реального проекта для желающих покодить - C++

19.07.2016, 19:54. Просмотров 817. Ответов 24
Метки нет (Все метки)

Привет

Попросили сделать парсер сайта по-дружески, но у меня реально времени на него нет. Если кому-то интересно, могу двигать в нужном направлении и может, при желании, могу пинать за плохой код.
Что нужно сделать - парсер с HTTP клиентом. Пример клиента на boost::asio скину, покажу как парсить HTML регулярками (да, есть библиотеки, но думаю руками будет интересней). Могу архитектуру накидать еще.

Есть сайт, там есть форма, в форму вводятся данные, данные для следующих листбоксов тянутся аджаксом, после заполнения всех форм аджаксом тянутся другие данные. Нужно стянуть данные для всех возможных комбинаций всех листбоксов, при этом нужно сохранить сами листбоксы.

Тему не помещаю во фриланс, т.к. денег не предвидится, но вообще, могу уточнить, может там какая-то чисто символическая сумма будет.

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

Тема для дипломного проекта - C++
Доброго времени суток! Пришло время писать диплом. Я не прошу конкретно назвать мне тему, достаточно хотя бы подтолкнуть в каком-нибудь...

Компиляция С++ проекта для КПК - C++
Всем привет! Решил тут одну полезную программку скомпилить для покета. У меня стоит VS2003 и когда-то я еще на VB создавал проект...

Отдельная папка для проекта - C++ Builder
Юзаю Rad Studio XE3. Назрел такой вопрос: можно ли как-то поместить проект в отдельную папку? А то все в Projects перемешивается и очень...

Смена иконки для проекта - C++ Builder
Ребят, знаю, что вроде как можно поставить иконку таким образом: Но иконка ставится только почему-то в мелком просмотре, если же...

Создание шаблона для проекта - C++ Builder
есть билдер, открываю FILE-OTHER. Вылазит список различных проектов которые могу создать(cpp фаил, хидер и тд и тп). Мне надо как то свой...

График реального времени для данных, поступающих из СОМ-порта (MFC) - Visual C++
Добрый день всем! Какое-то время назад Maxi Paul поднимал подобную тему, но она, к сожалению, осталась без ответа. Нужно построить в...

24
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2016, 22:52 #16
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я понимаю о чем ты говоришь, но реально нет необходимости.
Нет необходимости делать правильно?

Ну ваш изврат и изврат заказчика это ваши проблемы, я к тому что тема вроде создавалась что бы "учиться".
Тут как бы сразу вопрос если учится то если не на готовых либах которые специально предназначены, то почему на таком монстре как boost, а не на основах... на WinSocks к примеру (у меня на нем тоже есть пару велосипедов, правда не для реальных проектов а для студенческих)
0
Croessmah
Эксперт CЭксперт С++
13415 / 7566 / 855
Регистрация: 27.09.2012
Сообщений: 18,618
Записей в блоге: 3
Завершенные тесты: 1
26.07.2016, 22:54 #17
Цитата Сообщение от Avazart Посмотреть сообщение
я к тому что тема вроде создавалась что бы "учиться".
А в заголовке написано
для желающих покодить
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,274
Записей в блоге: 2
Завершенные тесты: 1
26.07.2016, 22:57  [ТС] #18
Цитата Сообщение от Avazart Посмотреть сообщение
то почему на таком монстре как boost, а не на основах... на WinSocks к примеру.
Если бы я обещал научить сетевому программированию, то да, нужно было бы начать с основ. А так бустовский клиент - это быстрый и простой способ получить рабочий HTTP клиент без усилий. Как бы сетевого программирования тут не будет, задача сводится к другому.
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2016, 23:00 #19
Цитата Сообщение от Croessmah Посмотреть сообщение
А в заголовке написано
Тогда расшифруйте что это значит?
Ибо я понимаю только две мотивации деньги и/или (положительный)опыт.

Цитата Сообщение от Kastaneda Посмотреть сообщение
это просто быстрый и просто способ получить рабочий HTTP клиент без усилий.
Нет самый простой использовать либу для HTTP, а не уровень сокетов.
0
Kastaneda
26.07.2016, 23:00  [ТС]
  #20

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Нет необходимости делать правильно?
правильно это делать на питоне

0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2016, 23:02 #21
Цитата Сообщение от Kastaneda Посмотреть сообщение
Как бы сетевого программирования тут не будет, задача сводится к другому.
Все зависит от того что считать сетевым программированием, знание HTTP все таки требуется.
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,274
Записей в блоге: 2
Завершенные тесты: 1
26.07.2016, 23:04  [ТС] #22
Цитата Сообщение от Avazart Посмотреть сообщение
Нет самый простой использовать либу для HTTP, а не уровень сокетов.
либу еще прикрутить надо, а буст уже прикручен, ctrl+C, ctrl+V явно быстрее
На самом деле не вижу предмета спора, будет класс, который будет использоваться так
C++
1
std::string html = http_client::get("doman.name.com");
начинку http_client можно будет заменить в любой момент, если когда-нибудь в этом будет необходимость, тогда уже можно и готовые либы использовать. Пока же никакой необходимости в этом нет. Зачем тянуть к проекту дополнительную библиотеку?
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2016, 23:15 #23
Цитата Сообщение от Kastaneda Посмотреть сообщение
правильно это делать на питоне
Ну вы сами написали что на С++, я не стал советовать питон (хотя опять же спорный вопрос, иногда проще кинуть клиенту экзешник и забыть, нежели ставить ему питон, ставить либы для парсинга, ставить PyQt)

Цитата Сообщение от Kastaneda Посмотреть сообщение
либу еще прикрутить надо,
Вы пишите в С++Builder ? Если нет не вижу проблем с прикручиванием сторонних либ

Цитата Сообщение от Kastaneda Посмотреть сообщение
Зачем тянуть к проекту дополнительную библиотеку?
Зачем тянуть весь монстр-буст ?

Касательно кода, опять же куки, заголовки, исключения, таймауты, прокси и понеслась....
Я уже не говорю что из
Цитата Сообщение от Kastaneda Посмотреть сообщение
для следующих листбоксов тянутся аджаксом
может последовать то что потребуется браузерный движок.

Я к тому что следует посмотреть снифером запросы, а для этого некоторый опыт по анализу HTTP-запросов нужен.
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,274
Записей в блоге: 2
Завершенные тесты: 1
26.07.2016, 23:37  [ТС] #24
Цитата Сообщение от Avazart Посмотреть сообщение
может последовать то что потребуется браузерный движок.
Я к тому что следует посмотреть снифером запросы, а для этого некоторый опыт по анализу HTTP-запросов нужен.
Не, там все очень просто - в браузере отследил нужные запросы, в ответ приходит HTML с кодом 200. Никаких дополнительных приседаний не надо.

Я даже не вижу причин иметь дополнительную зависимость (в виде библиотеки) для такой простой задачи. Проект и так зависит от буста, заюзать boost::asio не проблема. Сейчас точно известно, что готовый клиент из бустовских примеров полностью покрывает все потребности.
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2016, 23:39 #25
Kastaneda, Вам виднее.
(но я бы проверил есть ли в ответе на тот самый запрос все то что нужно спарсить)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2016, 23:39
Привет! Вот еще темы с ответами:

Подбор частот для пяти фильтров для обработки реального и идеального сигналов - Scilab
Привет всем! Имеется код программы для обработки реального и идеального сигналов. clear load("ideal2.dat") Si=s s= ...

Java на практике для всех желающих - Java
Доброго время суток, форумчане! Я начинающий Java разработчик. Проводя на форуме довольно много времени, начал замечать, что часто...

Список вопросов по C++ для желающих проверить свои знания C++ - C++
Я пишу книгу "Сборник тестовых вопросов и задач на знание C++ и умение его применять для решения конкретных задач.". Предлагаю Вашему...

Бесплатный доступ в Интернет для всех желающих может стать реальностью. - Безопасность
Несмотря на то, что вы прямо сейчас читаете это с экрана вашего компьютера и, быстрее всего, имеете iPhone или другой смартфон, позволяющий...


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

Или воспользуйтесь поиском по форуму:
25
Yandex
Объявления
26.07.2016, 23:39
Ответ Создать тему
Опции темы

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