C語言是一種強哥類型的編程語言,可以用于開發各種應用程序,包括通過網絡獲取頁面html代碼。在獲取頁面代碼時,需要使用網絡編程庫,例如libcurl。下面是使用libcurl獲取頁面html代碼的示例代碼:
#include#include int main(void) { CURL *curl; CURLcode res; char *url = "http://www.example.com"; char *html; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &html); res = curl_easy_perform(curl); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_easy_cleanup(curl); } printf(" %s", html); return 0; } static size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { char **html = (char **) userdata; size_t length = size * nmemb; char *temp = realloc(*html, strlen(*html) + length + 1); if (temp == NULL) { fprintf(stderr, "out of memory\n"); return 0; } *html = temp; memcpy(&((*html)[strlen(*html)]), ptr, length); (*html)[strlen(*html) + length] = '\0'; return length; }
在上面的代碼中,我們通過libcurl庫中的curl_easy_init函數創建一個CURL對象,并將要獲取的網頁URL傳遞給CURLOPT_URL選項。然后我們使用CURLOPT_WRITEFUNCTION選項來指定一個回調函數write_callback,這個函數會被libcurl自動調用,并將獲取到的頁面HTML代碼傳遞給它。我們在回調函數中將獲取到的HTML代碼保存到一個字符串中,并在程序結束時將它輸出到屏幕上。
需要注意的是,在回調函數write_callback中的代碼可能會比較復雜,因為它需要解決一些問題,例如內存分配和字符串拼接等。如果你只是想快速獲取一個頁面的HTML代碼,可以考慮使用更高級的網絡爬蟲庫,例如Python中的BeautifulSoup或Scrapy。