0

ウェブページをトラバースし、ランダムなアドレスを見つけ、ブラウザ拡張機能 (Firefox/Chrome) を使用して、Google マップでそのアドレスを検索できるはずのアルゴリズム クラスのプログラムを作成しています。私は文字通り、拡張機能を使用してテキストをキャプチャしてテキスト ファイルに入れ、プログラムにそのテキスト ファイルを読み取らせるのは良い考えだと思っていましたが、それがどのように実装されるかについての手がかりはありません。

これまでの私のコード (心配しないでください。ウィンドウ UI の後で長くなります。これは単なるテスト コンソール アプリです):

#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <windows.h>

using namespace std;



int main ()
{
  string address;

  cout << "Please input address: ";
//cin >> address;
  getline(cin, address); 
//word_list = getRecursiveURLs(url, DEPTH)
//return cleaner(word_list) 

//string address = "Houston, Tx ";
  std::string str = "http://mapof.it/" + address;
//cout << mapSearch;
  const char * c = str.c_str();

  ShellExecute(NULL, "open", c, NULL, NULL, SW_SHOWNORMAL);     
}

現在、私のコードは住所を受け取り、基本的に GMaps 検索を開始する「Mapof.it」URL の末尾に追加します。

4

1 に答える 1

0

ユーザーが C++ プログラムとやり取りしているようです。ブラウザの進行状況と通信する必要はありません。

C++ プログラムから http 要求を送信し、応答テキストを取得して解析することができます。

最初に、Web サイトが json/xml 形式を返す API URL を提供しているかどうかを調べます。これは、json/xml の方が解析しやすいためです。たとえば、Google マップはapiを提供します。

そうでない場合は、正規表現を使用して html を解析するか、DOM ハンドル ライブラリを見つけて DOM で解析してみてください。

結果のテキストが raw から抽出できない場合、JavaScript によって動的に作成されます。「ヘッドレス ブラウザ」ライブラリを見つけることができます。

フル機能のブラウザーが必要な場合は、QT を使用してください。QtWebkit ウィジェットが用意されています。

于 2013-04-16T01:08:42.017 に答える