我只想使用 C 将网页(它的 HTML 代码,如果它像 www.example.com/example.html)提取到文本文件中。是否可以使用任何库研究或任何东西?我真的迷失在“也许我应该学习”PHP 或 python 或其他东西,然后使用 system() 或 exec() 使用这些脚本的命令行调用。最好的方法是什么?
我目前的确切需求是 fetch http://livechat.rediff.com/sports/score/score.txt
,碰巧它是一个 .txt 文件。
使用curl 或 libcurl。它会为你获取一个网页,你可以用它做任何你喜欢的事情。
正如 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