爬蟲是一種自動化程序,可在互聯網上爬取信息或數據。在C語言中,使用爬蟲程序可以輕松地提取JSON格式的數據。
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,其結構簡單,易于閱讀和編寫。C語言中的爬蟲程序可以通過解析JSON格式的數據來提取所需的信息。以下是一段使用C語言爬取JSON數據的程序示例:
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #include <jansson.h> size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { return fwrite(ptr, size, nmemb, (FILE *)userdata); } int main() { CURL *curl = curl_easy_init(); FILE *file = fopen("data.json", "w+"); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api/data.json"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, file); CURLcode res = curl_easy_perform(curl); if(res != CURLE_OK) { printf("Error: %s\n", curl_easy_strerror(res)); } else { char *json_buffer = NULL; fseek(file, 0, SEEK_END); long length = ftell(file); fseek(file, 0, SEEK_SET); json_buffer = malloc(length); if(json_buffer) { fread(json_buffer, 1, length, file); json_error_t error; json_t *root = json_loads(json_buffer, JSON_DECODE_ANY, &error); if(!root) { printf("Error: %s\n", error.text); } else { // Parse JSON data here and extract desired information // ... json_decref(root); } free(json_buffer); } } fclose(file); curl_easy_cleanup(curl); } return 0; }
此程序使用cURL庫從指定的URL地址獲取JSON數據,將數據寫入文件中,隨后將數據從文件中讀取,并解析。您還可以添加其他參數來定制獲得的數據。
上一篇c 生成 json文件