Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 03.01.2019, 17:28   #1
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию скачать html страницу с помощью boost.beast

Всем доброе время суток, дали задачу реализовать crawler,скачать html страницу необходимо с помощью boost.beast к сожалению потратив очень много времени разобраться в документации этого чуда я не смог, обьясните пожалуйста как скачать html страницу с помощью boost beast
NDrago вне форума Ответить с цитированием
Старый 03.01.2019, 19:57   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

https://www.boost.org/doc/libs/1_69_...rt.http_client

Есть же готовый пример...
p51x вне форума Ответить с цитированием
Старый 05.01.2019, 13:46   #3
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
https://www.boost.org/doc/libs/1_69_...rt.http_client

Есть же готовый пример...
пример то есть, но разобраться я в нем к сожалению не смог, потому и попросил помощи, мне скорее нужно обьяснение как это работает а не сам факт что это работает) если нетрудно не могли бы вы расписать работу этого примера?
NDrago вне форума Ответить с цитированием
Старый 05.01.2019, 15:30   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Ммм..? Я даже подумал, что мне в бреду праздников приснилось, но нет - зашел, посмотрел - все комментарии на месте:
Код:
        // Set up an HTTP GET request message
        http::request<http::string_body> req{http::verb::get, target, version};
        req.set(http::field::host, host);
        req.set(http::field::user_agent, BOOST_BEAST_VERSION_STRING);

        // Send the HTTP request to the remote host
        http::write(socket, req);

        // This buffer is used for reading and must be persisted
        boost::beast::flat_buffer buffer;

        // Declare a container to hold the response
        http::response<http::dynamic_body> res;

        // Receive the HTTP response
        http::read(socket, buffer, res);
Что конкретно непонятно?

Может вы не знаете как работает HTTP? Что такое гет? https://en.wikipedia.org/wiki/Hypert...nsfer_Protocol

Последний раз редактировалось Alex11223; 05.01.2019 в 15:35.
p51x вне форума Ответить с цитированием
Старый 18.06.2019, 14:01   #5
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 104
По умолчанию

Здравствуйте,

Прдскажите пожалуйста, непонятно, что такре в данном случае - target и BOOST_BEAST_VERSION_STRING.

Прдскажите пожалуйста.
Android1 вне форума Ответить с цитированием
Старый 18.06.2019, 14:10   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
target
Вы запрашиваете конкретную страницу, указали метод - гет, версию хттп, что же такое оставшееся target?.. И главное перевод - цель, не помогает...

BOOST_BEAST_VERSION_STRING https://www.boost.org/doc/libs/maste...st/version.hpp
p51x вне форума Ответить с цитированием
Старый 18.06.2019, 14:23   #7
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 104
По умолчанию

Здравствуйте,
Код:
auto const host = argv[1];
auto const port = argv[2];
auto const target = argv[3]
Host - это доменное имя ? Порт - соответсвенно порт, по которому будем подключатся; Я честно не могу понять, что в данном случае такое target.

С boost version тоже все таки не понял

Последний раз редактировалось Android1; 18.06.2019 в 14:26.
Android1 вне форума Ответить с цитированием
Старый 18.06.2019, 14:43   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Мда...

Есть такой протокол в интернете HTTP - https://en.wikipedia.org/wiki/Hypert...nsfer_Protocol . У него есть различные методы запросов. Например, GET. Запрос с его помощью (https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html) выглядит так:
Код:
GET /index.html HTTP/1.1
Host: www.example.com
Вы прочитали ссылки? Теперь видите 3 параметра в первой строке? Метод, цель и версия хттп?

Цитата:
С boost version тоже все таки не понял
https://en.wikipedia.org/wiki/User_agent
p51x вне форума Ответить с цитированием
Старый 18.06.2019, 14:48   #9
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 104
По умолчанию

С таргетом теперь понял, спасибо. Я почему то думал, что весь путь до страницы в хосте прописывается.
Android1 вне форума Ответить с цитированием
Старый 18.06.2019, 14:50   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

И какой же это хост будет? Это уже конкретная страница.
p51x вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinApi скачать страницу сайта Biohazard Работа с сетью в Delphi 4 06.10.2014 13:09
Скачать файл или страницу программно! alexrg Visual C++ 3 12.10.2013 07:38
Заполнить boost::bimap используя boost::assign Diego__ Общие вопросы C/C++ 2 18.02.2012 15:48
Как вывести код html из файла на страницу HTML Рамирас JavaScript, Ajax 1 25.07.2010 19:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS