在C语言中读取HTML各标签,可以使用以下几种方法:
使用libcurl库
安装libcurl库:在Debian/Ubuntu系统上,可以使用`sudo aptget install libcurl4openssldev`命令安装。
使用libcurl库获取HTML内容,并通过正则表达式匹配和提取HTML标签。示例代码如下:
```c
include include include include size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream) { size_t written = fwrite(ptr, size, nmemb, (FILE *)stream); return written; } int main() { CURL *curl; CURLcode res; char *html_content = malloc(1); curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); curl_easy_setopt(curl, CURLOPT_WRITEDATA, html_content); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } if(res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { printf("%s", html_content); } free(html_content); curl_global_cleanup(); return 0; } ``` 安装libcurl和Gumbo库:在Ubuntu上,可以使用`sudo aptget install libcurl4openssldev`和`sudo aptget install libgumbo-dev`命令安装。 使用Gumbo库解析HTML并提取标签。示例代码如下: ```c include include include include void print_tag(GumboNode *node) { if (node->type == GUMBO_TAG) { printf("<%s>", gumbo_tag_name(node->v.tag)); for (unsigned int i = 0; i < node->children.length; i++) { print_tag(node->children.data[i]); } printf(">\n"); } } int main() { char *html_content = " Hello, World!使用Gumbo库