IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

screen scraping en java


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 45
    Points : 42
    Points
    42
    Par défaut screen scraping en java
    Bonjour à tous,
    Je cherche à apprendre à faire du screen scraping en java. Pas du web scraping (mon ami google m'a innondé de web scraping, mais je n'ai rien vu pour du screen scraping)...
    En gros, j'ai un logiciel sur mon écran, et j'aimerais pouvoir tenir un historique des boutons sur lesquels j'ai cliqué, de l'information que j'ai reçue en réponse,etc. Je vois comment passer les données à un tableau SQL pour tenir tout ça, mais récupérer lesdites données, je sais pas !
    Quelqu'un connaîtrait un cours ou tutoriel pour apprendre à faire ça ?
    Merci d'avance

  2. #2
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    octobre 2011
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 424
    Points : 4 470
    Points
    4 470
    Par défaut
    quel logiciel?
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 45
    Points : 42
    Points
    42
    Par défaut
    Le but, c'est surtout d'apprendre à récupérer les données de mon écran.
    Pour le projet là, je voulais faire avec un logiciel de poker. Ceci dit, j'aimerais pouvoir le faire avec n'importe quoi, que ce soit un jeu vidéo ou autre.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    12 423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 12 423
    Points : 21 030
    Points
    21 030
    Par défaut
    A la limite, avec des boutons de l'API Windows, et des informations qui changent dans une fenêtre dessinée par API Windows, on aurait encore pu croire quelque chose. (Mais en utilisant des techniques difficiles et certainement pas avec Java)

    Mais avec des jeux vidéos, tu dois forcément te douter qu'il n'existe pas de fonctions pour faire ça. Ce sont des dessins sur l'écran, il ne peut pas y avoir d'identification des "boutons cliqués" ni de "l'information obtenue".

    Si encore on partait d'un programme précis, on pourrait essayer de bricoler à coups de screenshots en signalant au "screen scrapper" où sont les boutons et où et quand apparaissent les informations obtenues. Ce serait une gageure mais il y aurait des trucs à tenter.

    Mais pour n'importe quel programme en plus, là il ne te reste plus que le deep learning et des décennies d'accumulation de données d'apprentissage. Et utiliser autre chose que Java, parce que Java ne peut pas inspecter l'écran d'un autre programme ni les clics faits sur un autre programme.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 45
    Points : 42
    Points
    42
    Par défaut
    merde, je ne pensais pas que ce serait si compliqué

    "Mais pour n'importe quel programme en plus" ah oui, là je me suis mal exprimé. En gros, je voulais dire "savoir le faire" pour n'importe quel programme, autrement dit si j'ai un programme je fais tout ça sur mesure à la main.

    Du coup, pour montrer précisément ce que je voudrais savoir faire (qui existe déjà) :
    Nom : Capture.PNG
Affichages : 29
Taille : 323,8 Ko
    Ici, on voit assez facilement ce qui a été ajouté (les lettres/chiffres en blanc sur fond noir):
    A gauche, le "5,7s" qui veut dire que le joueur a mis 5.7s à agir ; le "Or", qui décrit son action (de mettre 2BB), et pour l'autre joueur pareil, son action et le temps qu'il a mis à la faire. En bas, le "odds : 22%" qui est obtenu en récupérant la taille de sa mise, du pot et ce qu'il me reste à mettre pour égaler cette mise. J'aimerais faire en gros un programme qui fait pareil.

    Du coup, c'est possible en java ça ? Si non, quel langage pourrait le faire ?

  6. #6
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    octobre 2011
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 424
    Points : 4 470
    Points
    4 470
    Par défaut
    Comme dit précédemment pour n'importe quel programme, ca n'a pas de sens, certains programmes offrent des possibilités, par exemple joignable via un socket, qui exposent une API, qui sauvegardent leur actions dans une persistance lisible, qui utilisent des librairies dynamiques remplaçables...

    Au pire des cas tu peux lire les informations a l'écran, avec openCV par exemple il y a un binding java je crois, sinon JNI/JNA ou plus récemment la JEP 424 pour taper dans la lib.
    Tu peux aussi lire les infos du clavier/souris via la lib JNA sous windows seulement via l'API win32, partiellement disponible.
    Une fois lue, il te faudra interpréter l'information pour d'abord identifier le contenu et ensuite son impact sur l'état de l'application visée.

    Inutile de dire que c'est un boulot énorme pour un résultat des plus incertains et éphémère.
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    12 423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 12 423
    Points : 21 030
    Points
    21 030
    Par défaut
    En général ce genre de mods ne lisent pas l'écran, mais cherchent des bricolages pour extraire du programme quel est l'état du jeu.

    Par exemple les compagnons Hearthstone, super pratiques, ont l'air assez magiques à savoir comme ça quelles cartes ont été jouées et piochées. Mais bon la magie, c'est que Hearthstone loggue toutes les cartes jouées et piochées dans un fichier. Le compagnon se contente de lire ce fichier de logs.

    Souvent c'est plus compliqué, genre il faut insérer un détournement de certains appels dynamiques de fonctions du programme original. Mais à ma connaissance rarement une histoire d'analyse de l'écran.

    Concernant l'emploi de Java, impossible ça n'existe pas en informatique. Mais utiliser Java pour ça c'est se compliquer la vie. Il faut utiliser des technologies qui sont à l'aise pour s'imposer aux autres programmes (insérer des détournements de leurs appels dynamiques, et dessiner sur leurs écrans), et en général c'est du C et une bonne compréhension des mécanismes internes de Windows.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 45
    Points : 42
    Points
    42
    Par défaut
    Hmmm.
    Merci mille fois de vos réponses.
    Du coup, j'ai bien l'impression que c'est assez largement au dessus de mes compétences, je crois qu'on va laisser tomber pour l'instant lol.

Discussions similaires

  1. Affichage d'un Splash screen avec Java Web Start
    Par Gob4 dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 13/02/2013, 10h38
  2. Librairie de screen scraping sur protocole 3270
    Par Meta4 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 21/05/2012, 16h52
  3. Screen scraping sur une page Javascript.
    Par katcha95 dans le forum Débuter
    Réponses: 0
    Dernier message: 10/02/2010, 15h15
  4. Réponses: 1
    Dernier message: 07/10/2007, 20h36
  5. [Java 6]le Splash Screen ne marche pas
    Par bassim dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 08/02/2007, 23h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo