LINUX.ORG.RU

КакпПолучить код html-страницы в строку???


0

0

Использую редактор Geany. Пишу на с++. Как записать в строку html-код желаемой страницы? Какие модули использовать? В Linux работаю одну неделю. В Винде под Билдером уже давно бы все сделал за 5 минут. Здесь ничего не получается. Помогите кто чем может!


1). wine и поставьте билдер

2). virtual box/qemu/kvm/etc.. и поставьте винду и там билдер

3). учить матчасть

(4) wget желаемая_страница и работать с локальным файлом

qnikst ★★★★★
()

Тебе нужно страничку скачать? Тогда смотри здесь: http://curl.haxx.se/libcurl/c/libcurl-tutorial.html.

В Винде под Билдером уже давно бы все сделал за 5 минут.

Ага, знаем-знаем. Была у меня на работе одна такая программа «в дебилдере за 5 минут» =).

Deleted
()

Как записать в строку html-код желаемой страницы?

С сервера шоле скачать? А то после билдера вы не можете корректно формулировать вопросы.

wfrr ★★☆
()

typedef struct {
	char* mem;
	size_t size;
} memory;

char* download_page(char* url)
{
	memory mem;
	CURL* handle = curl_easy_init();
	mem.mem = 0;
	mem.size = 0;
	
	size_t write_cb(void* ptr, size_t size, size_t nmemb, void* data)
	{
		size_t realsize = size * nmemb;
		memory* mem = (memory*) data;
		mem->mem = realloc(mem->mem, mem->size + realsize + 1);
		if (mem->mem) {
			memcpy(&(mem->mem[mem->size]), ptr, realsize);
			mem->size += realsize;
			mem->mem[mem->size] = 0;
		}
		return realsize;
	}
	
	curl_easy_setopt(handle, CURLOPT_URL, url);
	curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, write_cb);
	curl_easy_setopt(handle, CURLOPT_WRITEDATA, (void *)&mem);
	curl_easy_setopt(handle, CURLOPT_USERAGENT, "libcurl/1.10 (X11; Linux i686; U; ru)");
	
	curl_easy_perform(handle);
	curl_easy_cleanup(handle);
	return mem.mem;
}

wieker ★★
()

Самый лучший ответ предложил wieker

У меня тоже есть вариант, который короче и можно использовать простым способом много возможностей. Он хуже предыдущего, так как более тяжеловесный и требует программу wget

Вам всего-то нужно с помощью popen запустить wget с любыми опциями, которые пожелаете. Главное добавить параметр со скачиванием не в файл, а в стандартный вывод. В фоне будет запущен wget, которые будет на вывод подавать нужный файл. Только попадать он будет не на вывод, а будет передан вашей программе, которая сможет считать его с помощью того дескриптора, который вернула popen. Работать с этим дескриптором нужно как с файлом

vertexua ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.