2010-12-20 10 views
9

私のホッケープールの管理に役立つC++プログラムを作成したいと思います。重要なことは、その週のスケジュールを読み込むことです先に。私はNHLのウェブサイトを使いたいと思っていました。与えられたURLのHTMLファイルをプログラムにダウンロードさせて解析する方法はありますか?私は一度私はファイルをダウンロードして、シンプルなファイルのI/Oは、しかし、私はファイルをダウンロードする方法がわからないと思う。C++プログラム内のWebサイトからデータを取得するには

+1

可能な複製(https://stackoverflow.com/questions/389069/programmatically-reading-a -web-page) – user463035818

答えて

14

HTTP抽象化を提供するライブラリを使用します。例えば

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

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ではその

よりもはるかに容易に得ることができるとは思いませんQHttpは(あなたがなど、要求が終了したことを報告していくつかの信号をキャッチする必要があること、その手段)のみ非ブロック要求を送信することができますので、これは 、かなり長い得ることができるためQHttp

例。 しかし、ドキュメントは素晴らしいので、問題ではありません。 :)

+0

+1このライブラリはまだ受け入れられていませんが、優雅に見えます。 – AraK

+0

これはlibcurlよりもC++の方が多いからです。 – ybungalobill

6

libcurlを使用することも1つの選択肢です。 Hereは、Webページのコンテンツを文字列としてダウンロードするためにC++で使用する例です。

1

私は最終的にそれをコンパイルするために管理し、リンクを:[プログラムのWebページを読み込む]の

g++ -I. -I/usr/include -lboost_thread -lboost_system 
    -lcppnetlib-client-connections -lcppnetlib-server-parsers 
    -lcppnetlib-uri -pthread main.cpp 
関連する問題