Я пишу программу для своего класса алгоритмов, которая должна проходить по веб-странице, находить случайный адрес, а затем, используя расширение браузера (Firefox / Chrome), должна выполнить поиск Google Maps по этому адресу. Я буквально просто подумал, что, возможно, попытка использовать расширение для захвата текста и помещения его в текстовый файл, а затем заставить мою программу читать этот текстовый файл, будет хорошей идеей, но я понятия не имею, как это будет реализовано.
Мой код пока (не волнуйтесь, после оконного интерфейса он станет длиннее. Это всего лишь тестовое консольное приложение):
#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);
}
Прямо сейчас мой код берет адрес и добавляет его в конец URL-адреса «Mapof.it», который в основном инициирует поиск GMaps.
Похоже, что пользователь взаимодействует с вашей программой на C ++. Не нужно общаться с прогрессом браузера.
Вы можете отправить запрос http из программы на C ++, получить текст ответа и затем проанализировать его.
Во-первых, вы пытаетесь выяснить, есть ли на веб-сайте URL-адрес API, возвращающий формат json / xml, потому что анализировать json / xml проще. Например, Google Map предоставляет апи.
Если нет, попробуйте использовать регулярное выражение для анализа html или найдите некоторую библиотеку дескрипторов DOM, чтобы проанализировать ее с помощью DOM.
Если ваш результирующий текст не может быть извлечен из raw, он динамически создается с помощью JavaScript, вы можете найти библиотеку «безглавого браузера», которая вам поможет.
Если вам нужен полнофункциональный браузер, используйте QT, он предоставляет виджет QtWebkit.
Других решений пока нет …