2

このページを解析しようとしています!

string str2 ("<span class=\"time_rtq_ticker\"><span id=\"yfs_l10_usdsgd=x\">");
  size_t found;

  // different member versions of find in the same order as above:
  found=sdata.find(str2);
  if (found!=string::npos)
    cout << "first 'needle' found at: " << int(found) << endl;

パターンである「針」の位置を取得した後、通貨レートを取得するにはどうすればよいですか。後で解析を停止したい

申し訳ありませんが、これは私の小さなプロジェクトであり、商用ではなく、ほんの小さな仕事です

4

3 に答える 3

3

yahoo はこのための Web サービスを提供していませんか? どちらが簡単でしょう。これをチェックして:

http://developer.yahoo.com/finance/company.html

于 2012-07-23T16:16:53.277 に答える
2

std::string.substr(pos,npos)std::stringfrom pos (あなたfoundの場合) と length を提供しnposます。長さを調べるには、文字列 "<" (次の HTML タグの先頭) を探して減算する必要があります。

于 2012-07-23T18:17:58.233 に答える
1

@Adel Boutros が言ったように、Yahoo Finance が提供する API を使用するか、このようなものを自分で解析したい場合は、少なくとも完全な HTML パーサー クラスを使用する必要があると思います。

さまざまなバリエーションがありますが、基本的には、タグを読み取ってデータ コンテンツを提供します。目的のタグをキャッチするためのハンドラーをいくつか追加するだけで済みます。すべてのパーサーの動作は少し異なり、速度や単純さの点でさまざまな利点があります。 、しかし、彼らはかなり単純明快で、より... 安定していますか? あなたがしていることよりも。

これは、C++ HTML パーサーの選択に関する興味深い SO です (ただし、不安定に見えます)。個人的には、Python を外部呼び出して解析するか、ダウンロードした Web ページをより使いやすい形式に解析するために呼び出すことができる小さな Java EXE を作成します (私は Python の方が好きですが、より多くの人が Java とそれを知っています)。動作します)。

https://stackoverflow.com/questions/489522/library-recommendation-c-html-parser

于 2012-07-23T16:23:18.420 に答える