libcurl 라이브러리의 웹 크롤러 프로그램

샘플 코드:

#include <curl/curl.h> 
#include <iostream> 
​int
main() { 
    CURL *curl; 
    CURLcode res; 
curl_global_init
    (CURL_GLOBAL_DEFAULT); 
curl
    =curl_easy_init(); 
    if(curl) { 
        curl_easy_setopt(curl, CURLOPT_URL, "/"); 
        curl_easy_setopt(curl, CURLOPT_PROXY, ""); 
        cur_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); 
        컬_easy_setopt(컬, CURLOPT_WRITEFUNCTION, NULL); // 사용 가능한 도구는 
        curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL); // 사용 가능한 默认错误处理函数
​res
        =curl_easy_perform(curl); 
​if
        (res != CURLE_OK) 
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl; 
​curl_easy_cleanup
        (컬); 
    } 
​curl_global_cleanup
    (); 
​return
    0; 
}

설명하다:

  • #include <curl/curl.h>: libcurl의 모든 함수 선언이 포함된 libcurl 라이브러리의 헤더 파일입니다.

  • #include <iostream>: iostream 클래스를 포함한 C++ 표준 입출력 라이브러리의 헤더 파일입니다.

  • curl_global_init(CURL_GLOBAL_DEFAULT): libcurl 전역 변수를 초기화하는 함수로, CURL_GLOBAL_DEFAULT는 기본 설정을 사용한다는 의미입니다.

  • curl = curl_easy_init(): CURL 객체를 생성하고 CURL 포인터를 반환하는 함수입니다.

  • curl_easy_setopt(curl, CURLOPT_URL, "https://www.ctrip.com/");: CURL 객체의 URL을 설정하는 함수로, 매개변수는 URL 문자열이다.

  • curl_easy_setopt(curl, CURLOPT_PROXY, "www.duoip.cn:8000");: CURL 객체의 서버를 설정하는 함수로, 파라미터는 서버의 IP 주소와 포트번호이다.

  • curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);: CURL 객체가 리다이렉션을 따르는지 여부를 설정하는 함수로, 매개변수는 정수이며, 1은 리다이렉션을 따르는 것을 의미하고, 0은 리다이렉션을 따르지 않는다는 것을 의미한다.

  • curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);: CURL 객체의 쓰기 기능을 설정하는 함수로, 매개변수는 함수 포인터이며, 요청 성공 후 이 함수가 호출되어 요청 결과를 씁니다.

  • curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL);: CURL 객체의 오류 처리 기능을 설정하는 함수로, 매개변수는 함수 포인터로, 요청이 오류 처리에 실패하면 이 함수가 호출된다.

  • curl_easy_perform(curl);: CURL 객체에 대한 요청을 수행하는 함수로, 요청이 성공하면 CURLE_OK를 반환하고, 요청이 실패하면 에러 코드를 반환한다.

  • if(res != CURLE_OK): 조건문입니다.curl_easy_perform() 함수에서 반환된 오류 코드가 CURLE_OK와 같지 않으면 다음 명령문이 실행됩니다.

  • std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;: 오류 정보를 출력하는 함수로, cur_easy_perform() 함수에서 반환된 오류 코드가 CURLE_OK와 같지 않으면 이 함수를 실행하여 오류 정보를 출력한다.

  • curl_easy_cleanup(curl);: CURL 객체를 소멸시키고 CURL 객체가 점유하고 있던 리소스를 해제하는 함수입니다.

  • curl_global_cleanup();: libcurl 전역 변수를 소멸시키고 libcurl이 점유하고 있는 리소스를 해제하는 함수입니다.

  • return 0;: 메인 함수의 반환 값으로, 프로그램이 정상적으로 종료되었음을 나타냅니다.

추천

출처blog.csdn.net/weixin_73725158/article/details/134070127