Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++爬虫

作者:让固执流亡丶   发布日期:2025-02-10   浏览:169

#include <iostream>
#include <string>
#include <curl/curl.h>

// 回调函数,用于处理从网页获取的数据
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

int main() {
    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    // 初始化CURL
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();

    if (curl) {
        // 设置要访问的URL
        curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");

        // 设置回调函数和用户数据
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

        // 执行HTTP请求
        res = curl_easy_perform(curl);

        // 检查请求是否成功
        if (res != CURLE_OK) {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        } else {
            // 输出获取到的内容
            std::cout << readBuffer << std::endl;
        }

        // 清理CURL资源
        curl_easy_cleanup(curl);
    }

    // 清理全局CURL资源
    curl_global_cleanup();

    return 0;
}

解释说明:

  1. 引入库:我们使用了 curl 库来进行 HTTP 请求。curl 是一个强大的库,支持多种协议(如 HTTP、HTTPS 等),并且可以方便地进行网络请求。
  2. 回调函数WriteCallback 函数用于处理从网页获取的数据,并将其存储到 readBuffer 中。
  3. 初始化和设置:通过 curl_easy_init 初始化 CURL,然后使用 curl_easy_setopt 设置请求的 URL 和回调函数。
  4. 执行请求curl_easy_perform 执行 HTTP 请求,并将结果传递给回调函数。
  5. 错误处理:检查 curl_easy_perform 的返回值,如果失败则输出错误信息。
  6. 清理资源:在程序结束前,确保释放所有分配的资源,包括 CURL 资源和全局资源。

这个简单的 C++ 爬虫示例展示了如何使用 curl 库从指定的 URL 获取网页内容并输出到控制台。

上一篇:mutable在c++中的作用

下一篇:c++ grpc

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站