Achetez et vendez votre matériel multimédia d'occasion sur notre service de petites annonces informatiques gratuites

Robot (php ?)

<<<1>>>

[Page 1 sur 1 - 11 messages]
Informations Messages

rodgeur

Avatar de rodgeur
6 messages
Neurone isolé
Neurone isolé

Lien direct Le 23 Mars 2009 à 12h07

Bonjour,

dans le cadre d'un projet d'économie, un ami a besoin d'énormément de données sur des transferts de football, sur des sites comme http://www.soccerbase.com/ ou http://www.footballdatabase.eu/

Comme c'est trop fastidieux pour qu'il rentre tout à la main dans son fichier excel, je lui ai proposer de chercher comment faire un robot qui va lui-même récupérer les données sur ces sites.
Sachant que je vais lui héberger une interface sur mon espace free, pour qu'il puisse rentrer les url à visiter et récupérer les statistiques dont il a besoin.

Le problème, c'est que je ne sais pas comment récupérer le code source d'une page à distance... En cherchant sur google, j'ai entendu parler de cURL, mais il faut apparemment installer quelquechose, ce que je ne peux pas faire sur un espace free...

Comment est-il possible de réaliser cela ? Et sur quelles technologies ? Le PHP suffit-il pour réaliser cela ?


Merci d'avance pour votre aide.

 

Le 44

Avatar de Le 44
737 messages
Carte Mère
Carte Mère

Lien direct Le 23 Mars 2009 à 15h43

slt et bienvenue sur aidoforum !

je crois que ce que tu veux faire s'appele tout simplement du PIRATAGE !Sourire

non mais sérieux, si tu veux piquer toutes les infos sur des transferts de foot etc.. tu ne peux pas faire un robot, car ton robot serai tout simplement un virus !

Internet (explorer ou mozilla) n'affiche que le html. Tout ce qui est php, css, flash, rubi, ajax etc... internet le garde pour lui ! Donc à la limite, tu peux faire, lorque tu es sur une page que tu recherches : affichage => code source (ou source) et tu auras pratiquement tout le html du site.

Après, c'est à toi de faire le tri.


En espérant t'avoir aidé.


Cordialement, Le 44

 

rodgeur

Avatar de rodgeur
6 messages
Neurone isolé
Neurone isolé

Lien direct Le 23 Mars 2009 à 15h47

Citation de Le 44

si tu veux piquer toutes les infos sur des transferts de foot etc.. tu ne peux pas faire un robot, car ton robot serai tout simplement un virus !



Donc les robots google et Cie sont des virus...

 

ju2cho7

Avatar de ju2cho7
7322 messages
No-Life
No-Life
AidoCodeur
AidoCodeur
Modérateur
Modérateur

Lien direct Le 23 Mars 2009 à 17h43

C'est tout à fait possible...
Et ce n'est pas illégal, si les infos sont affichées publiquement, c'est pour qu'on puisse les lire, que ce soit avec l'oeil humain ou avec un bot.
En effet, le bot Google (& co.) "lit" les pages.
Cette lecture n'entraîne pas de piratage des fichiers source, juste l'analyse du code HTML résultant de la requêteSourire

Le PHP peut suffir, il faut "juste" lui dire de récupérer le code source de la page, et de ne garder que les infos via des expressions régulières qui vont sélectionner par exemple tous les bouts de code similaires et en extraire les données.
Les infos sont générées par des boucles, elles peuvent être extraites par des bouclesSourire

Nous ne fournissons pas d'aide par MP. ;)
 

rodgeur

Avatar de rodgeur
6 messages
Neurone isolé
Neurone isolé

Lien direct Le 23 Mars 2009 à 17h50

Oui c'est ce que je voulais dire, ne récupérer que des infos qui sont affichées publiquement, le but étant d'éviter à mon ami d'avoir à lire toutes les pages et récupérer toutes les données à la main...
donc récupérer le code HTML des pages puis l'analyser.

Justement, mon problème est que je ne sais pas comment récupérer le code source (enfin, après traitement du serveur, donc de l'HTML) grâce au PHP. Comment peut-on faire cela ?

D'autre part, je n'ai pas compris ta dernière phrase avec les boucles... peux tu préciser stp ?


Merci pour ton aide

 

Pouzy

Avatar de Pouzy
14155 messages
No-Life
No-Life
Administrateur
Administrateur

Lien direct Le 23 Mars 2009 à 21h29

Coucou,

Essaie de creuser un peu, certains de ces sites doivent proposer des flux XML qui te permettent d'exploiter facilement les données (s'ils mettent souvent à jour les résultats, j'ose supposer qu'ils ont des flux RSS, ça draine des visites.).

Pour te donner un exemple, celui des derniers messages d'aidoforum se trouve là : http://www.aidoforum.com/forum/rss.php

Sinon, il faudrait lire la page, et la parser (découper) pour récupérer seulement les données qui t'intéressent, mais il suffirait qu'ils changent un bout du design pour que tu l'aies dans l'os Rougis

Hello

Devenez fan d'Aidoweb sur Facebook \o/ - N'oubliez pas de cliquer sur [Résolu] une fois votre problème réglé
 

rodgeur

Avatar de rodgeur
6 messages
Neurone isolé
Neurone isolé

Lien direct Le 23 Mars 2009 à 21h32

Merci pour ton aide Pouzy.
Justement, c'est le point "il faudrait lire la page" qui me pose problème pour le moment (le parsing, je verrai ca plus tard).

Apparemment ca a l'air d'être facile à faire, mais je ne sais quand même pas comment faire ca... peux-tu m'éclairer stp ?

Merci

 

Pouzy

Avatar de Pouzy
14155 messages
No-Life
No-Life
Administrateur
Administrateur

Lien direct Le 23 Mars 2009 à 21h49

Si tu trouves ce dont je t'ai parlé, le flux RSS, tu peux utiliser des trucs tout prêts : http://www.scriptol.fr/rss/lecteur-rss.php

Pour parser la page elle même, j'ai trouvé cette fonction sur HFR :

Code

<?php
function get_CodeHTML($URL)
{
$file=fopen($URL,"r");
if(!$file)
{
echo "<p>Impossible d'ouvrir le fichier</p>.\n";
exit;
}
while(!feof($file))
{
$line .= fgets($file,1024);
}
fclose($file);
// nettoyage du code
// 1. retirer les balise HTML
$line = strip_tags($line);
// 2.supprimer les retour à la ligne
$line = str_replace("\n","",$line);
return $line;
}

function getStringBetween ($chaine,$debut,$fin)
{
preg_match("/".$debut.".*".$fin."/U", $chaine, $retour);
$mot = $retour[0];
$mot = ereg_replace ($debut,"",$mot);
$mot = ereg_replace ($fin,"",$mot);
return $mot;
}

$URL = "http://lapagequetuveuxici.com";
$codeHTML = get_CodeHTML($URL);

echo getStringBetween ($codeHTML,"Results Received","Total CPU");
?>



Mais bon, ça utilise les expressions régulières, et si tu n'en as jamais entendu parler, il va falloir t'y familiariser : http://www.commentcamarche.net/contents/php/phpreg.php3

Devenez fan d'Aidoweb sur Facebook \o/ - N'oubliez pas de cliquer sur [Résolu] une fois votre problème réglé
 

rodgeur

Avatar de rodgeur
6 messages
Neurone isolé
Neurone isolé

Lien direct Le 23 Mars 2009 à 21h56

Merci,

je n'avais pas pensé à utiliser tout simplement la fonction fopen pour prendre ca comme un fichier...

Par contre avec cette méthode, je ne peux pas récupérer les codes HTML résultant du traitement d'un serveur PHP, si ?

 

Pouzy

Avatar de Pouzy
14155 messages
No-Life
No-Life
Administrateur
Administrateur

Lien direct Le 23 Mars 2009 à 22h07

Pourquoi veux tu des paramètres post ?
Si c'est pour récupérer de l'information qui nécessite d'être identifié pour y avoir accès, alors là ça devient plus périlleux, et peut être un peu moins légal, je t'avoue que je ne sais pas :spamoi:

Devenez fan d'Aidoweb sur Facebook \o/ - N'oubliez pas de cliquer sur [Résolu] une fois votre problème réglé
 

rodgeur

Avatar de rodgeur
6 messages
Neurone isolé
Neurone isolé

Lien direct Le 23 Mars 2009 à 22h11

J'ai édité mon message après que tu l'ai lu.
Concrètement, dans les sites dont j'ai parlé au début, il y en a un où il faut sélectionner l'année des transferts pour avoir les stats (menu déroulant). Et sur la page suivante, il y a du php qui détermine le HTML en fonction de l'année saisie dans le menu.

C'est pourquoi j'ai besoin d'exécuter la requête sur le serveur PHP (donc avec du POST), et de récupérer le HTML renvoyé par le serveur.

 

<<<1>>>

[Page 1 sur 1 - 11 messages]