以下是一个使用 C 语言编写的简单爬取图片的代码,你可以输入一个网址,程序将会将该网页中的所有图片下载到本地。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_URL_LENGTH 1000
#define MAX_FILE_NAME_LENGTH 100

void downloadImage(char* imageUrl, char* fileName) {
    FILE* fp = fopen(fileName, "wb");
    if (fp == NULL) {
        printf("Failed to open file for writing\n");
        return;
    }

    // 下载图片
    FILE* image = popen(imageUrl, "r");
    if (image == NULL) {
        printf("Failed to download image\n");
        return;
    }

    // 写入文件
    char buffer[1024];
    size_t bytesRead;
    while ((bytesRead = fread(buffer, 1, sizeof(buffer), image)) > 0) {
        fwrite(buffer, 1, bytesRead, fp);
    }

    // 关闭文件和进程
    fclose(fp);
    pclose(image);

    printf("Downloaded image: %s\n", fileName);
}

int main() {
    char url[MAX_URL_LENGTH];
    printf("Enter a URL: ");
    fgets(url, sizeof(url), stdin);
    url[strcspn(url, "\n")] = '\0';  // 去除输入中的换行符

    // 使用wget命令获取网页内容
    char command[MAX_URL_LENGTH + 10] = "wget -qO- ";
    strcat(command, url);

    // 执行wget命令并读取输出
    FILE* webpage = popen(command, "r");
    if (webpage == NULL) {
        printf("Failed to retrieve webpage\n");
        return 1;
    }

    char imageTag[] = "<img";
    char* imageStart;
    char* imageEnd;
    char imageUrl[MAX_URL_LENGTH];
    char fileName[MAX_FILE_NAME_LENGTH];

    // 在网页中搜索图片链接
    while (fgets(imageUrl, sizeof(imageUrl), webpage) != NULL) {
        if ((imageStart = strstr(imageUrl, imageTag)) != NULL) {
            imageStart = strchr(imageStart, '\"');
            imageStart++;
            imageEnd = strchr(imageStart, '\"');
            *imageEnd = '\0';
            strcpy(fileName, strrchr(imageStart, '/') + 1);  // 从URL中提取文件名
            downloadImage(imageStart, fileName);
        }
    }

    // 关闭文件和进程
    pclose(webpage);

    return 0;
}

请注意,该代码依赖于系统中已安装wget命令。在 Linux 系统上,可以通过 sudo apt-get install wget 进行安装。在 Windows 系统上,可以下载并安装 wget 的 Windows 版本,并将其可执行文件添加到系统路径中。

使用该代码时,请在命令行中编译和运行。输入一个网址,程序将会下载该网页中的所有图片,并将其保存到当前目录下。

C语言爬取图片代码:从网页下载图片到本地

原文地址: https://www.cveoy.top/t/topic/p1ae 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录