0

我正在为我的算法类编写一个程序,该程序应该能够遍历网页,找到一个随机地址,然后使用浏览器扩展程序(Firefox/Chrome),它应该在谷歌地图上搜索该地址。从字面上看,我只是认为也许尝试使用扩展来捕获文本并将其放入文本文件中,然后让我的程序读取该文本文件将是一个好主意,但我不知道如何实现。

到目前为止我的代码(别担心,在 Window 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);     
}

现在,我的代码接受一个地址并将其添加到“Mapof.it”网址的末尾,该网址基本上启动了 GMaps 搜索。

4

1 回答 1

0

看起来用户正在与您的 C++ 程序进行交互。它不需要与浏览器进度通信。

您可以从 C++ 程序发送 http 请求,获取响应文本,然后解析它。

首先,您尝试查找网站是否提供返回 json/xml 格式的 api url,因为 json/xml 更容易解析。例如,谷歌地图确实提供了 api

如果不行,尝试用正则表达式解析html,或者找一些DOM句柄库用DOM解析。

如果您的结果文本不能从原始文本中提取,它是由 JavaScript 动态创建的,您可以找到一些“无头浏览器”库来帮助您。

如果您需要一个全功能的浏览器,请使用 QT,它提供了 QtWebkit 小部件。

于 2013-04-16T01:08:42.017 回答