用c语言写一个输入文字爬取图片的代码
以下是一个使用C语言编写的简单代码,可以根据用户输入的文字爬取图片并保存到本地。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#define MAX_URL_LENGTH 1000
// 回调函数,用于将获取到的图片数据保存到本地文件
size_t write_callback(void* ptr, size_t size, size_t nmemb, FILE* stream) {
return fwrite(ptr, size, nmemb, stream);
}
int main() {
char search_text[MAX_URL_LENGTH];
printf("请输入要搜索的文字:");
fgets(search_text, MAX_URL_LENGTH, stdin);
// 将换行符替换为空字符
search_text[strcspn(search_text, "\n")] = '\0';
// 构建搜索图片的URL
char url[MAX_URL_LENGTH];
snprintf(url, sizeof(url), "https://www.example.com/search?q=%s", search_text);
CURL* curl = curl_easy_init();
if (curl) {
// 设置要访问的URL
curl_easy_setopt(curl, CURLOPT_URL, url);
// 创建保存图片的文件
FILE* fp = fopen("image.jpg", "wb");
if (fp == NULL) {
printf("无法创建文件!\n");
return 1;
}
// 设置回调函数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
// 执行HTTP请求
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
printf("请求失败:%s\n", curl_easy_strerror(res));
}
// 清理资源
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
请注意,上述代码中的https://www.example.com/search?q=仅作为示例URL,请根据实际情况替换为正确的URL。此外,代码中使用了libcurl库来进行HTTP请求,因此需要在编译时链接该库,例如使用以下命令进行编译:
gcc -o crawler crawler.c -lcurl
在运行时,用户需要输入要搜索的文字,然后代码会根据输入的文字构建URL,并将获取到的图片保存到名为image.jpg的文件中。请确保运行代码的机器已经安装了libcurl库
原文地址: http://www.cveoy.top/t/topic/ii0E 著作权归作者所有。请勿转载和采集!