Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Получение текста в нужном месте Web-странцы


Автор: Rutti 13.9.2015, 16:15
Как получить текст в нужном месте web-страницы (предположим считать текст "Поиск недвижимости" на этой странице http://cpp.ru/)?

Автор: feodorv 13.9.2015, 21:11
Вопрос не понятен. "Нужное место" - это какое? Контент страницы с веба получили? Тогда:
Код
ptr = strstr( content, "Поиск недвижимости");
если в конец контента добавить '\0'.

Автор: Rutti 15.9.2015, 12:50
Цитата(feodorv @  13.9.2015,  21:11 Найти цитируемый пост)
"Нужное место" - это какое?

Тест на странице. Пример я  привёл.


Цитата(feodorv @  13.9.2015,  21:11 Найти цитируемый пост)
Контент страницы с веба получили?

Нет. Не знаю как это делается.

Автор: baldina 15.9.2015, 13:03
Цитата(Rutti @  15.9.2015,  12:50 Найти цитируемый пост)
Не знаю как это делается

при помощи протокола http. попробуйте например http://curl.haxx.se/libcurl/

Цитата(Rutti @  15.9.2015,  12:50 Найти цитируемый пост)
Тест на странице. Пример я  привёл.

как в html определить нужное место? html это не изображение в браузере, программа - не человек. 
если нужно просто найти подстроку в тексте, то feodorv Вам ответил. С точностью до кодировки, пробелов и возможных тегов внутри фразы))

Добавлено @ 13:07
если вы не знаете текст, и вам нужно его получить, должны быть какие-то признаки, по которым искать. например, требуется искать содержимое body, или h1, или div .heading-block, или еще что-то

Автор: Rutti 18.9.2015, 18:01
Цитата(baldina @  15.9.2015,  13:03 Найти цитируемый пост)
html это не изображение в браузере

Я не имел в виду изображение.

Цитата(baldina @  15.9.2015,  13:03 Найти цитируемый пост)
если вы не знаете текст, и вам нужно его получить, должны быть какие-то признаки, по которым искать.

Я знаю чётко место в сайте, которое мне нужно получить. Вопрос только - как. Я не знаю как "добраться" до html-страницы. 

Автор: feodorv 18.9.2015, 19:44
Цитата(Rutti @  18.9.2015,  18:01 Найти цитируемый пост)
Я не знаю как "добраться" до html-страницы. 

Цитата(baldina @  15.9.2015,  13:03 Найти цитируемый пост)
при помощи протокола http. попробуйте например libcurl


Автор: Rutti 30.1.2016, 16:30
Не пойму в чём причина.
Скачал http://curl.haxx.se/gknw.net/7.40.0/dist-w32/renamed-curl-7.40.0-devel-mingw32.zip. Раскидал всё по папкам.
При выполнении:
Код

#include <curl/curl.h>
int main(void)
{
CURL *curl;//Объект CURL

//объект в который будет записан результат вызова функции curl_easy_perform
CURLcode res;

//выполняем инициализацю
curl = curl_easy_init();

if(curl) { //проверяем все ли ОК
//дальше работаем с опциями

//задаем опцию получить страницу http://nullflow.blogspot.com
curl_easy_setopt(curl, CURLOPT_URL, "http://nullflow.blogspot.com");

//указываем использовать прокси сервер
curl_easy_setopt(curl, CURLOPT_PROXY, "ip_proxy:8080");

//задаем опцию отображение заголовка страницы
curl_easy_setopt(curl, CURLOPT_HEADER, 1);

//вызываем функцию curl_easy_perform которая обработает все наши заданные опции и вернет результат, если res будет равен 0 то начит всё прошло успешно, иначе возникла какая то ошибка.
res = curl_easy_perform(curl);

//завершаем нашу сессию
curl_easy_cleanup(curl);
}

return 0;
}

Получаю ошибки

||=== Build: Debug in libcurl (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
main.cpp|10|undefined reference to `_imp__curl_easy_init'|
main.cpp|16|undefined reference to `_imp__curl_easy_setopt'|
main.cpp|19|undefined reference to `_imp__curl_easy_setopt'|
main.cpp|22|undefined reference to `_imp__curl_easy_setopt'|
main.cpp|25|undefined reference to `_imp__curl_easy_perform'|
main.cpp|28|undefined reference to `_imp__curl_easy_cleanup'|
||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Почему?

Автор: fish9370 31.1.2016, 15:31
Цитата(Rutti @  30.1.2016,  16:30 Найти цитируемый пост)
Почему? 


это ошибка связывания (линковка), необходимо добавить -lcurl  в строку сборки

Автор: Amp 31.1.2016, 18:51
Если говорить конкретно про указанный сайт, то страница там формируется js-кодом и curl не сильно спасет. В общем-то как и на многих сайтах в сети. Нужно брать headless-движок вроде phantomjs и грузить сайт им. А раз у ТС даже с подключением curl-а возникли трудности, то рекомендую просто взять ноду, поставить phantomjs через npm и накатать скрипт в 10 строчек кода на js.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)