Как я могу проверить, содержит ли веб-сайт строку в c ++?

Откройте файл в режиме QIODevice::Append:

QFile f(...);
if (f.open(QIODevice::WriteOnly | QIODevice::Append)) {
  ...
}

См. также документацию .

2
задан Jaden Williams 17 January 2019 в 11:12
поделиться

2 ответа

Вы можете использовать следующие шаги:

  1. Запросить страницу, используя HTTP
  2. Сохранить ответ в std::string
  3. Использовать std::string::find. [ 115]

Сложность здесь - это шаг 1. В C ++ нет стандартного HTTP-клиента. Он также не имеет стандартного сетевого API. Вы можете найти спецификацию HTTP здесь: https://tools.ietf.org/html/rfc2616 , которую вы можете использовать для реализации клиента HTTP. Но, как и во всех задачах программирования, вы можете сэкономить много работы, используя существующую реализацию.

0
ответ дан eerorika 17 January 2019 в 11:12
поделиться

Стандарт C ++ не имеет сетевых утилит, но вы можете использовать библиотеку boost::asio для загрузки содержимого веб-страницы и поиска строки "active".

Один из способов сделать это:

boost::asio::ip::tcp::iostream stream("www.example.com", "http");
stream << "GET /something/here HTTP/1.1\r\n";
stream << "Host: www.example.com\r\n";
stream << "Accept: */*\r\n";
stream << "Connection: close\r\n\r\n";
stream.flush();

std::ostringstream ss;
ss << stream.rdbuf();
std::string str{ ss.str() };

if (auto const n = str.find("active") != std::string::npos)
  std::cout << "found\n";
else
  std::cout << "nope\n";
0
ответ дан Andreas DM 17 January 2019 в 11:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: