如何从C ++程序内的网站获取数据

时间:2010-12-20 08:54:17

标签: c++

我想用C ++编写一个有助于管理我的曲棍球池的程序,我需要做的一件事就是读取前一周的时间表。我希望使用NHL网站。有没有办法让程序下载给定网址的HTML文件,然后解析?我想,一旦我下载了文件,简单文件I / O就可以,但我不知道如何下载文件。

3 个答案:

答案 0 :(得分:16)

我会使用一些提供Http抽象的库。

例如:

<强> cpp-netlib

#include <boost/network/protocol/http/client.hpp>
#include <string>
#include <iostream>
int main()
{
    boost::network::http::client client;
    boost::network::http::client::request request("http://www.example.com");
    request << boost::network::header("Connection", "close");
    boost::network::http::client::response response = client.get(request);

    std::cout << body(response);
}

我认为它不会比那更容易

在GNU / Linux上编译:

g++ -I. -I$BOOST_ROOT -L$BOOST_ROOT/stage/lib -lboost_system -pthread my_main.cpp

<强> QHttp

此示例可能会很长, 因为QHttp只能发送非阻塞请求(这意味着你必须捕获一些报告请求已完成的信号等)。 但文档很精湛,所以它应该不是问题。 :)

答案 1 :(得分:7)

使用libcurl是一种选择。 Here是使用C ++将网页内容下载为字符串的示例。

答案 2 :(得分:1)

我终于设法编译并链接:

    g++ -I. -I/usr/include -lboost_thread -lboost_system 
    -lcppnetlib-client-connections -lcppnetlib-server-parsers 
    -lcppnetlib-uri -pthread main.cpp
相关问题