2

我只想使用 C 将网页(它的 HTML 代码,如果它像 www.example.com/example.html)提取到文本文件中。是否可以使用任何库研究或任何东西?我真的迷失在“也许我应该学习”PHP 或 python 或其他东西,然后使用 system() 或 exec() 使用这些脚本的命令行调用。最好的方法是什么?

我目前的确切需求是 fetch http://livechat.rediff.com/sports/score/score.txt,碰巧它是一个 .txt 文件。

4

2 回答 2

2

使用curl 或 libcurl。它会为你获取一个网页,你可以用它做任何你喜欢的事情。

于 2012-08-19T18:31:31.083 回答
2

正如 Toby 已经提到的,libcurl 可能是您最好的选择。这是一个演示如何使用libcurl-easy接口检索网页的实际程序:

#include <stdio.h>
#include <curl/curl.h>

int main(int argc, char *argv[]) {
    CURL *curl;
    CURLcode curl_result;
    const char *site;

    if (argc != 2) {
        fprintf(stderr, "Usage: %s site\n", argv[0]);
        return 1;
    }   

    site = argv[1];

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, site);
        curl_result = curl_easy_perform(curl);

        if(curl_result != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(curl_result));
        }   

        curl_easy_cleanup(curl);
    }   
    else {
        fprintf(stderr, "Failed to initialize curl\n");
        return 1;
    }   

    return 0;
}

该程序采用一个参数,即要检索的站点的名称。当使用 编译gcc curltest.c -lcurl -o curltest并运行时curltest http://livechat.rediff.com/sports/score/score.txt,输出以下内容:

l1=England vs South Africa
l2=England
interval=1
message=England 16-2 (13)
tagline=J Trott(6) I Bell(4)* 
date=19 August, 2012
ver=19
于 2012-08-19T23:14:40.030 回答