C++实现网络爬虫代码
时间: 2023-09-30 07:09:36 浏览: 111
C++实现网络爬虫
网络爬虫是一种自动化程序,它可以通过互联网收集数据。在 C++ 中实现网络爬虫需要使用一些网络编程库。以下是一个基本的 C++ 网络爬虫示例:
```c++
#include <iostream>
#include <string>
#include <curl/curl.h>
using namespace std;
// 回调函数,用于接收 HTTP 响应
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp)
{
((string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main()
{
CURL* curl;
CURLcode res;
string buffer;
curl = curl_easy_init();
if (curl)
{
// 设置 URL
curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com");
// 设置回调函数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
// 将响应数据传递给回调函数
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
// 执行 HTTP 请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if (res != CURLE_OK)
{
cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << endl;
}
else
{
// 输出响应数据
cout << buffer << endl;
}
// 释放资源
curl_easy_cleanup(curl);
}
return 0;
}
```
在上面的示例中,我们使用了 libcurl 库来发送 HTTP 请求和接收响应。我们首先初始化了一个 CURL 对象,然后设置了 URL 和回调函数。接着,我们调用 `curl_easy_perform()` 来执行 HTTP 请求,并将响应数据传递给回调函数。最后,我们检查请求是否成功,并输出响应数据。
请注意,这只是一个基本示例,实际的网络爬虫需要更多的代码来处理和解析 HTML 数据。
阅读全文