2010-05-03 7 views
3

On m'a dit que je devais utiliser Winsock, mais je ne sais pas par où commencer. Par exemple, j'essaie d'accéder, disons http://www.newegg.com/, j'essaie d'obtenir le titre du texte de seulement les trois produits de première page. Toute aide est grandement appréciée. : DC++, Obtenir du texte à partir d'un site Web

+1

Je pense que vous voulez gratter le contenu de ce site web ... l'utilisation de C++ à cet effet est * NON * recommandée .. Utilisez un langage de script tel que Python (avec BeautifulSoup) ou Perl pour accomplir ceci.Si vous voulez toujours utiliser C++, vous pouvez obtenir une intro de sockets à http://beej.us/guide/bgnet/ – aviraldg

+0

Est-ce un devoir? Si c'est le cas, veuillez le marquer. –

+0

Non, c'est juste un projet personnel que j'aimerais apprendre. Im un peu nouveau à C++, mais j'ai les bases vers le bas. – pure841

Répondre

1

W3.org fournit lui-même des bibliothèques C/C++ pour les requêtes Http.

les trouver here

Plus précisément, recherchez

HTTPReq.c
-3

Utilisez C++ si vous devez, mais il pourrait être beaucoup moins pénible à utiliser python. Regardez le module Python httplib pour savoir comment définir l'hôte que vous voulez utiliser, etc. Python est disponible gratuitement pour la plupart des plates-formes et est assez similaire à C++ pour que vous puissiez apprendre Python beaucoup plus vite que vous ne pouvez. apprendre à écrire un navigateur contrôlé par programme en C++. Eh bien, peut-être que ce n'est pas vrai pour tout le monde sur ce site, mais je parie que c'est vrai pour "la plupart" d'entre nous. J'avais l'habitude d'obtenir des cotations boursières mises à jour en temps quasi réel par CNN Money il y a des années et IIRC il y avait environ 100 lignes de code python.

Hotei

+0

-1 veuillez lire la question la prochaine fois. –

+0

OP est-il en train d'essayer de résoudre un problème ou d'essayer d'apprendre comment résoudre un problème avec un outil spécifique en tant qu'exercice d'apprentissage? Ma réponse était orientée vers le premier choix, peut-être avez-vous des informations qui vous mènent vers la seconde. C++ et Python ne sont que des outils, avec des forces et des faiblesses différentes. J'aime et utilise les deux. Si cela vous a semblé "évangélisme python" alors vous vous trompez, bien que je puisse voir comment cela pourrait être interprété de cette façon. – Hotei

0

Je suppose que vous devez utiliser C++ pour une raison, comme l'intégration avec les logiciels existants, sinon, selon certaines des autres suggestions, le choix d'une langue avec un cadre plus pratique (par exemple: langage de script) serait mieux adapté à la tâche.

Si vous souhaitez éviter de vous salir les mains avec WINSOCK ou avoir besoin de fonctionner sur une plate-forme autre que des fenêtres, vous pouvez utiliser la bibliothèque boost asio.

La page suivante contient des liens vers synchronisation simples et async clients http: http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/examples.html

Vous pouvez trouver de la documentation sur la bibliothèque elle-même à: http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio.html

4

Je vous recommande également libcurl pour ce genre de chose .

Vous pouvez également utiliser l'outil de ligne de commande cURL pour générer un exemple de code, ce qui est utile pour l'expérimentation.

1

Utilisez la bibliothèque boost et poco. Ils fournissent tous deux des solutions pour la programmation réseau. Boost fournit également une bibliothèque de spiritueux que vous pouvez utiliser pour analyser les données des sites Web. Poco libraru fournit également NetSSL, des solutions crypto.

P.S. boost :: spirit n'est pas une bibliothèque pour analyser les données des sites web, elle fournit une solution pour analyser les chaînes ...

Questions connexes