libcurlライブラリのWebクローラープログラム

サンプルコード:

#include <curl/curl.h>
#include <iostream>
int main() {
    CURL *カール;
    CURLコードの解像度。
    curl_global_init(CURL_GLOBAL_DEFAULT);
    カール =curl_easy_init();
    if(カール) {
        curl_easy_setopt(curl, CURLOPT_URL, "/");
        curl_easy_setopt(curl, CURLOPT_PROXY, "");
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL); // デフォルトの書き込み関数を使用します
        curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL); // デフォルトのエラー処理関数を使用する
        res =curl_easy_perform(curl);
        if(res != CURLE_OK)
            std::cerr << "curl_easy_perform() が失敗しました: " <<curl_easy_strerror(res) << std::endl;
        curl_easy_cleanup(カール);
    }
    curl_global_cleanup();
    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;: これはエラー情報を出力する関数です。curl_easy_perform() 関数によって返されたエラー コードが CURLE_OK と等しくない場合、この関数が実行され、エラー情報が出力されます。

  • curl_easy_cleanup(curl);: これは、CURL オブジェクトを破棄し、CURL オブジェクトが占有しているリソースを解放する関数です。

  • curl_global_cleanup();: これは、libcurl グローバル変数を破棄し、libcurl が占有しているリソースを解放する関数です。

  • return 0;: main関数の戻り値であり、プログラムが正常に終了したことを示します。

おすすめ

転載: blog.csdn.net/weixin_73725158/article/details/134070127