С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2

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

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

Студворк — интернет-сервис помощи студентам
Привет

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

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

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

Да, знаю С++ тут не лучший выбор, но тут большая активность желающих обучаться людей.
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2016, 19:54
Ответы с готовыми решениями:

Ищу желающих для создание программного обеспечение для системы ЕГАИС
Здравствуйте Уважаемые! Есть опыт работы с системой ЕГАИС и УТМ, есть несколько батников и приложение для работы с системой, но теперь...

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

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

24
 Аватар для casper007
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
21.07.2016, 22:11
Можно мне попробовать? Очень хочу научиться работать в данном направлении.
0
1 / 1 / 1
Регистрация: 04.12.2010
Сообщений: 67
22.07.2016, 10:46
Добрый день! Тоже хотел бы научиться работать в этом направлении!
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
22.07.2016, 13:43  [ТС]
casper007, ProgRoman, привет, я подумаю как можно разделить задачи, пока по работе большой загруз, не могу отвлечься.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
26.07.2016, 11:48
Цитата Сообщение от Kastaneda Посмотреть сообщение
я подумаю как можно разделить задачи
Ну выдать тз на маленькие конкретные функции. Типа: принимает такую-то строку, выдает такой-то объект.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 16:51
Цитата Сообщение от Kastaneda Посмотреть сообщение
Пример клиента на boost::asio скину, покажу как парсить HTML регулярками
Я бы так так не делал, это затратно по времени и морока.
boost::asio - все же плохо подходит для HTTP, да и парсинг регулярками не всегда подходит.
Обычно я использую C++Builder для этого или Qt, там все таки гуи и потоки есть и библиотеки для http.
Ну и если уж без фреймворков то все таки есть другие либы типа curl или Poco.

Цитата Сообщение от Kastaneda Посмотреть сообщение
Есть сайт, там есть форма, в форму вводятся данные, данные для следующих листбоксов тянутся аджаксом, после заполнения всех форм аджаксом тянутся другие данные. Нужно стянуть данные для всех возможных комбинаций всех листбоксов, при этом нужно сохранить сами листбоксы.
Больше походит не на "научится" а на "рутину" которую самому лень делать
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
26.07.2016, 16:52  [ТС]

Не по теме:

Avazart, согласен, просто это мой повседневный инструментарий, да и не настолько это и затратно по времени, для того, тобы получить тело HTTP ответа достаточно скопипастить готовый пример с бустовских примеров.


2all, блин, совсем нет времени, выходные пробухал был занят, в будни даже 10 минут выделить не могу. Вот если бы кто-то захотел себя попробовать в роли раздающего задачи, я б суть за пару минут в личку объяснил...

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
Больше походит не на "научится" а на "рутину" которую самому лень делать
да не, тут просто попросили как "тыжпрограммиста". У человека реальный проект, но он такие вещи не кодит. И да, какие-то деньги все таки будут, сумму пока не знаю.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 16:54
Цитата Сообщение от Kastaneda Посмотреть сообщение
не настолько это и затратно по времени, для того, тобы получить тело HTTP ответа достаточно скопипастить готовый пример с бустовских примеров.
Это совсем не так. Задача будет сводится к написанию класса клиента для реализации HTTP протокола на основе буст-сокетов(долгое и нудное чтение RFC), а потом только сама задача ... а на кой оно надо?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
26.07.2016, 16:56  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Задача будет сводится к написанию класса клиента для реализации HTTP протокола (долгое нужное чтение RFC), а потом только сама задача
Не, на столько крутой клиент тут не нужен. Тут просто игнорируешь все HTTP заголовки и читаешь контент в строку. Заранее известно, что код ответа будет 200, поэтому даже редиректы и пр. обрабатывать не надо.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 17:01
Цитата Сообщение от Kastaneda Посмотреть сообщение
Не, на столько крутой клиент тут не нужен. Тут просто игнорируешь все HTTP заголовки и читаешь контент в строку. Заранее известно, что код ответа будет 200, поэтому даже редиректы и пр. обрабатывать не надо.
Редерикты самая малая проблема. Банальная проблема с которой сталкиваешься каков размер пришедших данных? Т.е конец ответа....Или отправить POST или отправить POST multipart, SSL, энкодирование итп...

Можно делать влоб "без крутости" но это нифига не модифицируемо а учитывая что сайты меняют html- код страниц в лучшем случае каждый год-полгода - не дальновидно, потом фиг разберешься.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
26.07.2016, 17:10  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Редерикты самая малая проблема. Банальная проблема с которой сталкиваешься каков размер пришедших данных? Т.е конец ответа....Или отправить POST или отправить POST multipart, SSL, энкодирование итп...
не, там все гораздо проще - простой GET, в header добавляешь Connection:close и конец данных определяется тупо по EOF.

Цитата Сообщение от Avazart Посмотреть сообщение
Можно делать влоб "без крутости" но это нифига не модифицируемо а учитывая что сайты меняют html- код страниц в лучшем случае каждый год-полгода - не дальновидно, потом фиг разберешься.
Тут просто регулярки нужно будет поправить и все. Т.е. всё будет заточено под один конкретный сайт, делать мега универсальный скрапер необходимости пока точно нет.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 21:42
Цитата Сообщение от Kastaneda Посмотреть сообщение
не, там все гораздо проще - простой GET, в header добавляешь Connection:close и конец данных определяется тупо по EOF.
Который сайт может смело проигнорировать, некоторые сайты вообще только с сжатом состоянии контент высылают.
Да и как бы это все костыли, и изначально это то "как не надо делать".

Добавлено через 8 минут
Цитата Сообщение от Kastaneda Посмотреть сообщение
У человека реальный проект, но он такие вещи не кодит.
Так что странно тянуть такое в реальный проект.
Цитата Сообщение от Kastaneda Посмотреть сообщение
могу пинать за плохой код.
Так что кого тут пинать...
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
26.07.2016, 22:26  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Так что странно тянуть такое в реальный проект.
А что странного? Когда будет сайт возвращать, допустим, gzip, тогда и надо клиента расширять, сейчас есть сайт, который возвращает заранее известный ответ (чистый HTML с кодом 200), вот с этим ответом и надо работать. Писать расширяемый скрапер никто не просил.
Тут тот самый случай, когда нужно исходить из реальной задачи, а не проектировать расширяемую систему.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 22:31
Цитата Сообщение от Kastaneda Посмотреть сообщение
А что странного? Когда будет сайт возвращать, допустим, gzip, тогда и надо клиента расширять, сейчас есть сайт, который возвращает заранее известный ответ (чистый HTML с кодом 200), вот с этим ответом и надо работать. Писать расширяемый скрапер никто не просил.
Тут тот самый случай, когда нужно исходить из реальной задачи, а не проектировать расширяемую систему.
В том то и дело что проектировать ничего не нужно, нужно просто использовать предназначенную для этого библиотеку, что с экономит время сейчас и в будущем.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
26.07.2016, 22:41  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
нужно просто использовать предназначенную для этого библиотеку, что с экономит время сейчас и в будущем.
Я понимаю о чем ты говоришь, но реально нет необходимости. Встроить бустовкий HTTP клиент - это ctrl+C, ctrl+V. Буст уже прикручен, никаких доп. телодвижений не надо.

Добавлено через 1 минуту

Не по теме:

хотя у меня в проекте (как раз, где нужна готовая либа) все HTTP дела на boost::asio, но тут прихоть заказчика, не нужно ему ничего другого. Я к boost::asio уже привык, кучу своих велосипедов для HTTP уже написал :)

0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 22:52
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я понимаю о чем ты говоришь, но реально нет необходимости.
Нет необходимости делать правильно?

Ну ваш изврат и изврат заказчика это ваши проблемы, я к тому что тема вроде создавалась что бы "учиться".
Тут как бы сразу вопрос если учится то если не на готовых либах которые специально предназначены, то почему на таком монстре как boost, а не на основах... на WinSocks к примеру (у меня на нем тоже есть пару велосипедов, правда не для реальных проектов а для студенческих)
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
26.07.2016, 22:54
Цитата Сообщение от Avazart Посмотреть сообщение
я к тому что тема вроде создавалась что бы "учиться".
А в заголовке написано
для желающих покодить
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
26.07.2016, 22:57  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
то почему на таком монстре как boost, а не на основах... на WinSocks к примеру.
Если бы я обещал научить сетевому программированию, то да, нужно было бы начать с основ. А так бустовский клиент - это быстрый и простой способ получить рабочий HTTP клиент без усилий. Как бы сетевого программирования тут не будет, задача сводится к другому.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 23:00
Цитата Сообщение от Croessmah Посмотреть сообщение
А в заголовке написано
Тогда расшифруйте что это значит?
Ибо я понимаю только две мотивации деньги и/или (положительный)опыт.

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

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.07.2016, 23:00
Помогаю со студенческими работами здесь

Личная курилка alicesmagic для желающих пооффтопить
Воодушевившись фактом, что подобная тема у другого участника форума функционирует и не закрывается, не смотря на п.5.16 Правил форума,...

Ищу желающих принять участие в совместной разработке open source проекта
Тематику проекта и интересующие вас детали уточняйте в теме.

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

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

Для желающих принять участие в новом проекте (тестовый режим - в июле).
В стадии запуска интернет-проект‚ связанный с развитием новых видеосервисов. Контент для портала создается по принципиально новой...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru