C/Visual C - obtener url

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Obtener el código HTML de una página web en C

Publicado por Alejandro (913 intervenciones) el 14/03/2025 19:45:29
Para obtener el código HTML de una página web en C, puedes utilizar una biblioteca que facilite las solicitudes HTTP, como `libcurl`. A continuación, te muestro un ejemplo básico de cómo hacerlo:

Paso 1: Instalar libcurl



Asegúrate de tener `libcurl` instalada en tu sistema. Puedes descargarla desde curl.se (https://curl.se/libcurl/) y seguir las instrucciones de instalación.

Paso 2: Código de ejemplo



Aquí tienes un ejemplo de cómo usar `libcurl` para obtener el código HTML de una página web:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#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;
}

Paso 3: Compilar el código



Para compilar el código, asegúrate de enlazar con la biblioteca `libcurl`. Por ejemplo, si estás usando `gcc`, puedes compilarlo así:

1
gcc -o obtener_html obtener_html.c -lcurl

Paso 4: Ejecutar el programa



Una vez compilado, ejecuta el programa y debería imprimir el código HTML de la página especificada en la URL.

Consideraciones



- Asegúrate de manejar adecuadamente los errores y liberar la memoria que ya no necesites.
- Respeta las políticas de uso de los sitios web y asegúrate de no realizar solicitudes excesivas.

Este enfoque te permitirá obtener el código HTML de cualquier página web utilizando C.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar