Récupérer le texte d'une page web avec QWebEnginePage
Bonjour,
Travaillant avec Qt 12.6, je souhaite ouvrir une page web et convertir son contenu en texte brut (plain text); le code actuel est le suivant :
En-tête :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class Serveur : public QObject
{
Q_OBJECT
QWebEngineView *view;
public:
Serveur() {}
~Serveur(){}
void Telecharger_page_web(QUrl const&);
protected slots:
void Handle_html(QString const&);
signals:
void Go_html(QString const&);
}; |
et l'implémentation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
void Serveur::Telecharger_page_web(const QUrl & url)
{
QNetworkAccessManager *manager = new QNetworkAccessManager;
QNetworkReply *reply = manager->get(QNetworkRequest(url));
QEventLoop loop;
connect(manager, &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
loop.exec();
view = new QWebEngineView();
view->load(reply->url());
view->show();
QWebEnginePage *page = new QWebEnginePage(view->page());
page->toPlainText([this](const QString& result) mutable {emit Go_html(result);});
connect(this, SIGNAL(Go_html(QString const&)), this, SLOT(Handle_html(QString const&)));
delete reply;
}
void Serveur::Handle_html(QString const& text)
{
qDebug()<< "mon texte : "<< text;
} |
Récupérer la page web avec QWebEngineView ne pose pas de problème (view->show() affiche le contenu de la requête dans une fenêtre), mais l'étape d'après, la conversion en texte brut, ne me retourne qu'une chaîne vide (qDebug() << text)...
La documentation n'est pas très disert sur le sujet et je n'ai rient trouvé de convaincant sur les forums. Du coup je bloque... toute idée est la bienvenue.
Bonne journée