Comment puis-je obtenir le contenu de la page Web
je vais essayer d'obtenir la page web de données en chaîne que je puisse l'analyser. Je n'ai pas trouvé toutes les méthodes dans qwebview, qurl et de l'autre. Pourriez-vous m'aider? Linux, C++, Qt.
EDIT:
Merci pour l'aide. Le Code fonctionne, mais certaines pages après le téléchargement ont cassé le jeu de caractères.
J'ai essayé quelque chose comme cela pour le réparer:
QNetworkRequest *request = new QNetworkRequest(QUrl("http://ru.wiktionary.org/wiki/bovo"));
request->setRawHeader( "User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); "
"en-US; rv:1.9.0.1) Gecko/2008070206 Firefox/3.0.1" );
request->setRawHeader( "Accept-Charset", "win1251,utf-8;q=0.7,*;q=0.7" );
request->setRawHeader( "charset", "utf-8" );
request->setRawHeader( "Connection", "keep-alive" );
manager->get(*request);
Aucun résultat =(.
source d'informationauteur Ockonal | 2009-06-27
Vous devez vous connecter pour publier un commentaire.
Avez-vous regardé QNetworkAccessManager? Voici un simple exemple illustrant l'utilisation:
Dans votre dans votre gestionnaire pour l' fini signal vous sera transmis un QNetworkReply objet, dont vous pouvez lire la réponse de car il hérite d' QIODevice. Une façon simple de le faire est de simplement appeler readAll pour obtenir un QByteArray. Vous pouvez construire une QString à partir de ce QByteArray et faire ce que vous voulez faire avec elle.
Paul Dixon réponse est probablement la meilleure approche, mais de Jesse réponse ne toucher quelque chose de la peine de mentionner.
cURL -- ou, plus précisément, libcURL est une merveille puissant de la bibliothèque. Pas besoin pour l'exécution de scripts shell et l'analyse de la sortie, libCURL est disponible en C,C++ et plus de langues que vous pouvez secouer un URL. Il pourrait être utile si vous faites un peu bizarre opération (comme POST http sur ssl?) que qt ne supporte pas.
Avez-vous regardé dans les lynx, curl ou wget?
Dans le passé, j'ai besoin de saisir et d'analyser des informations à partir d'un site web, sans db accès, et si vous essayez d'obtenir dynamiquement des données au format, je crois que ce serait le moyen le plus rapide. Je ne suis pas un C gars, mais je suppose que il y a un moyen d'exécuter des scripts shell et de saisir les données, ou au moins de mettre le script en cours d'exécution et prenez la sortie à partir d'un fichier après l'avoir écrit. Pire des cas, vous pourriez lancer un cron et de vérifier pour un "fini" de la ligne à la fin du fichier écrit avec un C, mais je doute que ce sera nécessaire. Je suppose que cela dépend de ce que tu as besoin d'elle, mais si vous voulez juste le code html d'une page, quelque chose comme l'est comme un wget de canalisation à awk ou grep peut faire des merveilles.