我只想使用C将网页(其HTML代码,如果它像www.example.com/example.html)提取到文本文件中。是否可以使用任何图书馆学习或任何其他内容? 我真的迷失了“也许我应该学习”PHP或python等等,然后使用system()或exec()使用这些脚本的命令行调用。这是最好的方法吗?
我的确切当前需求是获取http://livechat.rediff.com/sports/score/score.txt
,这恰好是一个.txt文件。
答案 0 :(得分:2)
使用curl or libcurl。它将为您提取一个网页,您可以随心所欲地做任何事情。
答案 1 :(得分:2)
正如托比已经提到的,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