Powered by Invision Power Board


Forum Rules Bienvenue dans la Distillerie d'entraide

Quelques soient vos problèmes, nous sommes là !

  Reply to this topicStart new topicStart Poll

> Aux programmeurs, web mining
kamixave ®
Écrit le : Vendredi 30 Avril 2010 à 15h11


Détenteur d'une trousse Hamtaro
Group Icon

Groupe : Citoyens
Messages : 1 350
Membre n° : 239
Inscrit le : 29/07/2003




Bonjour à tous !

Comme je l'ai expliqué sur cette page, je fais actuellement de la recherche en économie. En l'occurrence, j'aurais besoin de collecter des données sur internet pour un projet, mais je suis pas sûr du "comment", et je fais donc appelle à ceux du site qui ont quelques connaissances dans cet obscur art qu'est la collecte de donnée sur le web (web mining).

Pour être un peu plus précis, j'aimerai fabriquer un petit programme pour collecter des données sur eBay : par exemple, pour un produit désigné (mettons, un clé pour la bêta de Starcraft 2 :)), regarder qui achète, fouiller l'historique de l'individu, regarder ses caractéristiques publiques etc.. Une petite araignée, si j'ai bien saisi la terminologie consacrée.

Deux questions se posent alors à moi :
1°) dans quel langage écrire un tel programme ? Comme je n'ai pas un temps disponible monstrueux, j'apprécierais plutôt un langage simple (de type Python), quitte à perdre un peu en vitesse et en capacité à aller à mort dans les détails. Le fait que le programme puisse facilement être utilisé sur 2 OS différents (comme Python, toujours) est un plus notable, même si ce n'est pas ma première nécessité. Mes connaissances "pointues" en programmation sont limitées aux langages utilisés par les logiciels de gestion et d'analyse de données (à la SAS, STATA, et les langages matriciels à la matlab), même si j'ai quelques notions plus générales (suffisantes pour me lancer dans la plupart des langages).
2°) Comment faire pour que le programme se "connecte" à une page et en lise les données (le code source) ? Je suppose qu'il y a des paquets pour ce genre d'opération, mais si vous pouviez m'en indiquer de bons en même temps que le langage que vous me conseilleriez, ce serait très appréciable !

Evidemment, un bon guide d'introduction au langage ne serait pas de refus, mais ne vous cassez pas la tête si vous n'avez pas de référence précise.

Je ne sais pas encore jusqu'où je vais pousser ce projet précis, mais il est très probable que je sois amené à faire du webmining dans les années à venir, donc plus je m'y mets tôt, mieux ce sera :)

Merci beaucoup de votre attention !
PMYahoo
Top
Kane
Écrit le : Vendredi 30 Avril 2010 à 19h08


Sylphe
Group Icon

Groupe : Citoyens
Messages : 257
Membre n° : 510
Inscrit le : 08/05/2004




Comme tu l'as notifié toi même, le Python est fait pour toi, il possède bien assez de lib orienté web / base de données / i/o pour te permettre d'accéder plus ou moins facilement à toutes tes recherches.

La où il y aura un léger problème, ce sera au niveau de la collecte d'information, ce que tu récupèrera avec ton crawler sera le code html des pages visité, code qui hélas dans 80% des cas ne respecte jamais les standards, du coup, la plus grande partie de ton travail consistera à réussir à parser (fouiller et réussir a faire lire/suivre les liens a ton robot de ce que tu recherche) ces pages pour en retirer les informations souhaitées.

Niveau documentation, je ne peux que te conseiller la doc officielle qui sera la plus complète que tu trouvera si tu n'es pas anglophobe, sinon au niveau des communauté je te conseillerai les classiques Site du Zéro et developpez.net (developpez.com fournira aussi pas mal de cours et tuto en français et anglais)

Et en bonus je crois me rappeler avoir lu que google avais mis en open source le code de son crawler quelque part, mais c'est a confirmer je ne retrouve plus l'info.

J'espère que cela pourra te donner une petite piste, bon courage a toi en tout cas !
PMEmail Poster
Top
Le poussin
Écrit le : Samedi 01 Mai 2010 à 00h18


Roi des abysses
Group Icon

Groupe : Citoyens
Messages : 507
Membre n° : 310
Inscrit le : 22/09/2003




Comme Kane, je verrais bien du python pour faire ça. :)
J'ai déjà fait des trucs équivalents, par exemple pour collecter des données de tvtropes.org.

Au niveau des modules/méthodes que tu peux utiliser...
Pour ouvrir la page tu as urlib qui fait le boulot et te retourne un objet type fichier sur lequel tu pourras appeler read() pour récupérer le contenu HTML.

Ensuite, si tu es hyper chanceux, en fouinant dans le code HTML d'une page tu pourrais tomber sur des ressources "brutes" sur lesquelles se base le site pour générer des zoulies pages. Auquel cas tu aurais accès à de la donnée bien plus facile à parser/analyser, ce qui te simplifiera pas mal la tâche.
Si tu as de la chance (plus modérée) le site que tu veux parser génère du XML valide, auquel cas tu peux utiliser le très pratique ElementTree qui va te permettre de naviguer dans l'arbre XML (structuré) pour récupérer les données dont tu as besoin.
Si tu as un peu moins de chance, la page contient du XML presque valide : il y a juste quelques bouts de codes qui font râler le parseur, du style des scripts pour des bannières de pub, des entités XML/HTML mal gérées, ...). Dans ce cas tu peux faire les quelques chercher/remplacer qu'il faut pour retomber sur du XML valide (et donc le cas précédent). Pour des chercher/remplacer un peu complexes tu peux utiliser des expression régulières ; c'est puissant, mais ça peut faire peur si tu ne connais pas et que tu n'es pas très familier avec de la prog.
Si tu n'as pas de chance, tu vas devoir te taper la collecte d'informations à la main, à grands coups de recherches dans le texte (là encore, les expressions régulières peuvent fortement aider).
PMUsers Website
Top
Forty-two
Écrit le : Dimanche 02 Mai 2010 à 20h28


Script Master
Group Icon

Groupe : Admin
Messages : 364
Membre n° : 262
Inscrit le : 04/08/2003




Il existe une version plus permissive d'ElementTree, qui utilise Tidy d'abord pour convertir du HTML tout pourri en joli arbre XML standard : ElementTree Tidy HTML Tree Builder

En tout cas, Python et urllib semblent un bon choix.

Kane >
Google a ouvert le code d'un crawler qui cherche certaines failles de sécurité. Le crawler est optimisé pour lire un tas de pages en parallèle. Par contre, je ne pense pas qu'il soit conçu pour extraire des données dans les pages, mais plutôt pour suivre les liens et regarder si la page contient certains indicateurs de failles.
PMEmail PosterUsers Website
Top
kamixave ®
Écrit le : Lundi 03 Mai 2010 à 10h05


Détenteur d'une trousse Hamtaro
Group Icon

Groupe : Citoyens
Messages : 1 350
Membre n° : 239
Inscrit le : 29/07/2003




Kane, Le poussin, Forty : Merci beaucoup pour votre aide ! Vous me donnez une orientation bien plus nette, et de super conseils et liens, ce qui me fera gagner un temps plus que notable, et surtout éviter de m'arracher les cheveux à deviner ce qu'il faut faire sans être qualifié pour démêler l'ensemble des informations trouvées au hasard du net.

Youpi !
PMYahoo
Top
0 utilisateur(s) sur ce sujet (0 invités et 0 utilisateurs anonymes)
0 membres :

Topic Options Reply to this topicStart new topicStart Poll

 


Habillé par Shadowillusions

Sites de nos membres :
Le blog de Mortis Ghost Le site de la réécriture Avatar RPG Le site de Fauna Friends