obtener url
Publicado por Leonardo (1 intervención) el 30/08/2002 01:46:27
si alguien pudira decirme como puedo obtener el codigo html de una paguina cualquiera en c
Valora esta pregunta


0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
// Estructura para almacenar los datos de la respuesta
struct MemoryStruct {
char *memory;
size_t size;
};
// Callback para manejar los datos recibidos
size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, struct MemoryStruct *userp) {
size_t realsize = size * nmemb;
userp->memory = realloc(userp->memory, userp->size + realsize + 1);
if (userp->memory == NULL) {
printf("Error al reasignar memoria\n");
return 0; // Out of memory
}
memcpy(&(userp->memory[userp->size]), contents, realsize);
userp->size += realsize;
userp->memory[userp->size] = 0; // Null-terminate
return realsize;
}
int main(void) {
CURL *curl;
CURLcode res;
struct MemoryStruct chunk;
chunk.memory = malloc(1); // Inicializa la memoria
chunk.size = 0; // Tamaño inicial
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.ejemplo.com"); // Cambia la URL aquí
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
// Realiza la solicitud
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() falló: %s\n", curl_easy_strerror(res));
} else {
// Imprime el código HTML
printf("%s\n", chunk.memory);
}
// Limpia
curl_easy_cleanup(curl);
free(chunk.memory);
}
curl_global_cleanup();
return 0;
}
gcc -o obtener_html obtener_html.c -lcurl