Recuperation donnée page web
MichaelOfCourse
Messages postés
90
Statut
Membre
-
MichaelOfCourse Messages postés 90 Statut Membre -
MichaelOfCourse Messages postés 90 Statut Membre -
Bonjour,
Je suis inscrit sur un site de jeu du loup garou en ligne, si certain connaissent, et j'aimerais aujourd'hui créer une signature dynamique sur le forum de ce site.
Je m'explique, une fois connecté au site, en allant sur la page mon compte, des informations apparaissent tel que mon ratio, mon nombre de points... etc
J'aimerais dans un premier temps, réussir a "capturer" ces informations. Je me suis renseigné tout l'après midi, et j'en suis a un stade ou je ne sais plus ou chercher, j'ai compris qu'il fallait cURL, mais j'ai cru comprendre qu'il fallait que la lib soit installée sur le serveur, aucune idée de si c'est le cas.
BREF, j'aimerais que vous me donniez des pistes sur comment créer une page qui toutes les 2h, par exemple, s'occupe de me loguer sur le site, en extraire ces informations, et en fasse une image png :D
Je vous remercie beaucoup d'avance !
Je suis inscrit sur un site de jeu du loup garou en ligne, si certain connaissent, et j'aimerais aujourd'hui créer une signature dynamique sur le forum de ce site.
Je m'explique, une fois connecté au site, en allant sur la page mon compte, des informations apparaissent tel que mon ratio, mon nombre de points... etc
J'aimerais dans un premier temps, réussir a "capturer" ces informations. Je me suis renseigné tout l'après midi, et j'en suis a un stade ou je ne sais plus ou chercher, j'ai compris qu'il fallait cURL, mais j'ai cru comprendre qu'il fallait que la lib soit installée sur le serveur, aucune idée de si c'est le cas.
BREF, j'aimerais que vous me donniez des pistes sur comment créer une page qui toutes les 2h, par exemple, s'occupe de me loguer sur le site, en extraire ces informations, et en fasse une image png :D
Je vous remercie beaucoup d'avance !
A voir également:
- Recuperation donnée page web
- Web office - Guide
- Supprimer page word - Guide
- Comment traduire une page web - Guide
- Capture page web - Guide
- Création page web - Guide
2 réponses
Salut MichaelOfCourse,
Comme tu es sous Linux, tu peux récupérer et filtrer le contenu de ta page en ligne de commande avec curl, grep et sed, par exemple, et fabriquer ton image au moyen de ce que tu as récupéré avec imagemagick, par exemple.
Un script bash pourrait réunir ces commandes.
Et tu pourrais lancer ce script toutes les deux heures avec cron.
Donc : pas besoin de serveur Php.
Dal
Comme tu es sous Linux, tu peux récupérer et filtrer le contenu de ta page en ligne de commande avec curl, grep et sed, par exemple, et fabriquer ton image au moyen de ce que tu as récupéré avec imagemagick, par exemple.
Un script bash pourrait réunir ces commandes.
Et tu pourrais lancer ce script toutes les deux heures avec cron.
Donc : pas besoin de serveur Php.
Dal
Re MichaelOfCourse,
Autrement, tu peux faire cela avec Php, et utiliser les fonctions disponibles dès lors que tu as gd compilé dans ton Php (comme https://www.php.net/manual/fr/function.imagecreatetruecolor.php ou https://www.php.net/manual/en/image.examples-png.php).
Pour savoir si ton serveur Php supporte curl, gd, etc., tu mets ceci dans une page php et tu vois ce qui est indiqué :
Il te faudra utiliser curl, preg_match ou un autre moyen de parser le contenu récupéré et les fonctions graphiques.
Le problème sera, si tu veux vraiment que ton script soit exécuté toutes les deux heures, de lancer ce script. Les pages Php sont lancées par les visiteurs quand ils sollicitent le serveur.
Si tu as Php CLI disponible sur ton serveur et un service cron sur ton serveur, tu peux te servir de Php comme d'un langage de script shell, la sortie ne se faisant pas alors par l'intermédiaire d'un serveur Web, mais sur la sortie standard.
Si tu ne peux utiliser Php que sous forme de pages servies par un serveur Web, tu peux utiliser des sites tels que ceux signalés dans cette recherche https://www.google.fr/search?q=web+cron&gws_rd=ssl pour programmer une requête vers ta page php selon la fréquence souhaitée (il y a des services gratuits, qui marchent plus ou moins bien, et des services payants).
Une autre solution, si la "signature" peut être hébergée sur ton serveur Php, serait d'indiquer l'adresse de ton script Php, qui envoie un header("Content-type: image/png"); avec le résultat des commandes de création d'image. Alors, pas besoin de programmer toutes les 2 heures. C'est lancé à chaque fois que l'affichage de la "signature" est demandé.
Dal
Autrement, tu peux faire cela avec Php, et utiliser les fonctions disponibles dès lors que tu as gd compilé dans ton Php (comme https://www.php.net/manual/fr/function.imagecreatetruecolor.php ou https://www.php.net/manual/en/image.examples-png.php).
Pour savoir si ton serveur Php supporte curl, gd, etc., tu mets ceci dans une page php et tu vois ce qui est indiqué :
<?php phpinfo(); ?>
Il te faudra utiliser curl, preg_match ou un autre moyen de parser le contenu récupéré et les fonctions graphiques.
Le problème sera, si tu veux vraiment que ton script soit exécuté toutes les deux heures, de lancer ce script. Les pages Php sont lancées par les visiteurs quand ils sollicitent le serveur.
Si tu as Php CLI disponible sur ton serveur et un service cron sur ton serveur, tu peux te servir de Php comme d'un langage de script shell, la sortie ne se faisant pas alors par l'intermédiaire d'un serveur Web, mais sur la sortie standard.
Si tu ne peux utiliser Php que sous forme de pages servies par un serveur Web, tu peux utiliser des sites tels que ceux signalés dans cette recherche https://www.google.fr/search?q=web+cron&gws_rd=ssl pour programmer une requête vers ta page php selon la fréquence souhaitée (il y a des services gratuits, qui marchent plus ou moins bien, et des services payants).
Une autre solution, si la "signature" peut être hébergée sur ton serveur Php, serait d'indiquer l'adresse de ton script Php, qui envoie un header("Content-type: image/png"); avec le résultat des commandes de création d'image. Alors, pas besoin de programmer toutes les 2 heures. C'est lancé à chaque fois que l'affichage de la "signature" est demandé.
Dal
Rebonjour Dal,
J'ai écris ce code, avec l'aide de plusieurs sites, il me permet normalement, de remplir les champs Pseudo et mot de passe, seulement, la page sur laquelle ce code est hebergé m'affiche toujours Connexion Ok, même quand le pseudo entré est faux. As tu une idée de là où le code pèche ?
<?php
$postfields = array(
'qpseudo' => '********',
'qpassword' => '*******',
);
$path_cookie = 'connexionlgel.txt';
if (!file_exists(realpath($path_cookie))) touch($path_cookie);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://loups-garous-en-ligne.com/compte');
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie));
$return = curl_exec($curl);
curl_close($curl);
if (!preg_match('#Username and password do not match#i', $return))
{
echo 'Connexion ok.';
echo $return;
}
else
{
echo 'Connexion échoué.';
}
?>
J'ai écris ce code, avec l'aide de plusieurs sites, il me permet normalement, de remplir les champs Pseudo et mot de passe, seulement, la page sur laquelle ce code est hebergé m'affiche toujours Connexion Ok, même quand le pseudo entré est faux. As tu une idée de là où le code pèche ?
A la vue de cette page, il semble que l'URL vers laquelle les données sont postées n'est pas celle que tu indiques, mais devrait être "/login". Regarde le code html et ce qui est indiqué dans la balise "form".
Es-tu sûr que la page html renvoyée en cas d'erreur de connexion contient "Username and password do not match" ?
Par ailleurs, cela serait peut être aussi une bonne idée de t'assurer que tu ce que tu envisages de faire ne pose pas de problèmes au site en question, ou est conforme à leurs conditions d'utilisation.
Dal
Es-tu sûr que la page html renvoyée en cas d'erreur de connexion contient "Username and password do not match" ?
Par ailleurs, cela serait peut être aussi une bonne idée de t'assurer que tu ce que tu envisages de faire ne pose pas de problèmes au site en question, ou est conforme à leurs conditions d'utilisation.
Dal
Après vérification, j'ai en effet été trop vite, donc j'ai remplacé l'url par la bonne (https://loups-garous-en-ligne.com/?loginError=true
Par contre, j'ai une nouvelle erreur
Oui, leurs conditions d'utilisation n'interdisent pas la connexion tierce ;)
Par contre, j'ai une nouvelle erreur
preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslashqui me dit que mes délimiteurs ne sont pas corrects, bon, soit, je verrais ça plus tard, mais surtout, ma page m'affiche encore Connexion ok quand je rentre un mauvais mot de passe :'(
Oui, leurs conditions d'utilisation n'interdisent pas la connexion tierce ;)
Dal
Ensuite, tout est traité niveau client là, mais je pensais qu'il y aurait eu une solution a base de php :(
EDIT : Je vais tout de même essayer ta solution en attendant :)
Dal
En tout cas je vais essayer d'avancer sur cette méthode, et en meme temps je vais aussi lire ton autre commentaire.
Merci vraiment de ton aide