C++:
הורדת דף אינטרנט
איך לעשות:
כדי להוריד דף אינטרנט ב-C++, נשתמש בספריית פופולרית בשם cURL
לדוגמה.
#include <iostream>
#include <string>
#include <curl/curl.h>
size_t callbackfunction(void *ptr, size_t size, size_t nmemb, std::string *data) {
data->append((char*) ptr, size * nmemb);
return size * nmemb;
}
std::string download_html(const std::string &url) {
CURL *curl;
CURLcode res;
std::string response_data;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callbackfunction);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_data);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return response_data;
}
int main() {
std::string url = "http://example.com";
std::string html_content = download_html(url);
if (!html_content.empty()) {
std::cout << "HTML content downloaded successfully:" << std::endl;
std::cout << html_content << std::endl;
} else {
std::cout << "Failed to download the content." << std::endl;
}
return 0;
}
זה ידפיס את ה-HTML של http://example.com.
עיון מעמיק:
הורדת דף אינטרנט לא הייתה פשוטה תמיד. לפני cURL, היינו צריכים להשתמש ב-sockets ולדבר ישירות עם ברוטוקול HTTP. חלופות ל-cURL כוללות ספריות כמו Boost.Beast
וPoco
. אם אתה צריך לעבוד עם HTTPS, אז cURL ישתמש בסיפרת SSL/TLS בצורה שקופה. בעת שימוש ב-cURL בפרויקט שלך, זכור להוסיף אותו למערכת הבניה שלך, כמו CMake או Make.
ראה גם:
- הדוקומנטציה של cURL: https://curl.se/libcurl/c/
- מדריכים ל-CMake: https://cmake.org/documentation/
- על HTTP/HTTPS ופרוטוקולים: https://developer.mozilla.org/en-US/docs/Web/HTTP
- מדריך Boost.Beast: https://www.boost.org/doc/libs/1_75_0/libs/beast/doc/html/index.html
- מידע על Poco Libraries: https://pocoproject.org/docs/