Отправляю get http запрос, получаю html код страницы и ищу в нем нужные элементы. таких запросов всего 2. первый раз все ищет, а на 2м запросе не ищет от слова совсем. в любом случае выдает -1.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
MainWindow::setFocus();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::weatherPars(QNetworkReply *reply)
{
QString html = reply->readAll(), weather;
int i = html.indexOf("°C")-1;
if(i < 0){
QMessageBox::critical(this, "Ошибка", "Вы ввели неверное название города или погода в нём неизвестна");
return;
}
while(html[i] != QString(">") && i != 50 && i != 0){
weather = html[i] + weather;
i--;
}
ui->cWeath->setText(weather);
disconnect(manager, &QNetworkAccessManager::finished, this, &MainWindow::weatherPars);
connect(manager, &QNetworkAccessManager::finished, this, &MainWindow::timePars);
QUrl url = QUrl(QString("https://www.google.com/search?q=CITY")
.replace("CITY", ui->lineEdit->text().replace(" ", "")));
manager->get(QNetworkRequest(url));
}
void MainWindow::timePars(QNetworkReply *reply)
{
ui->plainTextEdit->setPlainText(reply->readAll());
QString html = reply->readAll(), city;
qDebug() << i;
qDebug() << html.indexOf("a");
//while(html[i] != QString(">") && i != 50 && i != 0){
// city = html[i] + city;
// i++;
//}
ui->cityLbl->setText(city);
disconnect(manager, &QNetworkAccessManager::finished, this, &MainWindow::timePars);
}
void MainWindow::on_pushButton_clicked()
{
if(ui->lineEdit->text().replace(" ", "") != ""){
connect(manager, &QNetworkAccessManager::finished, this, &MainWindow::weatherPars);
QUrl url = QUrl(QString("https://www.google.com/search?q=погода+CITY&sxsrf=ALiCzsYVjVVKbBE4HK7GUOc_jH0OHNJthQ%3A1655124609068&ei=gTKnYtPzA6HprgTGl6WABg&ved=0ahUKEwiTuIfTu6r4AhWhtIsKHcZLCWAQ4dUDCA0&uact=5&oq=погода+москва&gs_lcp=Cgdnd3Mtd2l6EAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyCggAEEcQsAMQyQMyBwgAELADEEMyEgguEMcBENEDEMgDELADEEMYATISCC4QxwEQ0QMQyAMQsAMQQxgBSgQIQRgASgQIRhgAUABYAGDvBmgBcAF4AIABAIgBAJIBAJgBAMgBC8ABAdoBBAgBGAg&sclient=gws-wiz")
.replace("CITY", ui->lineEdit->text().replace(" ", "")));
manager->get(QNetworkRequest(url));
}else QMessageBox::critical(this, "Ошибка", "Пожалуйста, введите название города");
}
Вывод:
-2
-1
Отрывок из получаемого html:

Как тут видно, буквы A есть, но indexOf их не видит