Simuler le comportement humain à la souris

Hello,

C’est mon premier poste sur ce forum. Si je ne respecte pas une bonne pratique, n’hésitez pas à me le signaler et je corrige.

Je cherche à automatiser quelques tâches sur FB. J’aurais besoin d’un simulateur de déplacement et de clique car il me semble que Facebook monitore ces comportements (j’ai peut-être tord).

Auriez-vous :

  • une bibliothèque JS qui simule le comportement humain pour les déplacements et les cliques à la souris ?
    OU
  • la certitude que Facebook ne monitore pas ces comportements, auquel cas je n’ai pas à m’en préoccuper ?

La belle fin de journée !

Hello tu ne peux pas vraiment simuler le déplacement de la souris sinon imagine le bordel que ca serait : t’irais sur un site et him il clique la ou ils veulent.
Tu peux simuler le passage au dessus d’éléments et ca pourrait en quelque sorte mimer le mouvement de la souris.
Tu veux automatiser quoi ? Je pense que tu te prends la tête pour rien et qu’il n’y a pas besoin d’aller si loin.
@ScrapingExpert ton avis ?

1 « J'aime »

A moins d’avoir enregistré des comportements de mouvements de souris de la part d’humains, en stockant chaque coordonnées, pour ensuite les reproduire, c’est vrai que ça me semble délicat de simuler un déplacement de souris.

On est d’accord que faire se déplacer la souris d’un point A à B en mode rectiligne, ça serait tout sauf human-like.

Je ne pense pas que FB aille si loin pour le moment.

Demandons l’avis d’un bon expert en la matière: Gabin @mnmlstrntreprnr (pour une fois que je ne te cherches pas les poux avec les CSS :rofl: )

@boristchangang, @ScrapingExpert : Merci beaucoup pour vos retours, c’est top.

OK je me prends trop la tête, ça me va. Si je me fais bannir, je débarque chez toi hein ?! (je plaisante).

Je ne suis pas certain de piger votre scepticisme sur la possibilité de mimer des déplacements humains à la souris ceci dit.
Les éléments du DOM ont des coordonnées. Il suffit de prendre un point de l’élément ciblé, la position de départ de faire un move entre les deux qui a l’air humain en termes d’aléa et de vitesse. Ça me semble assez simple à coder pour le coup mais vous voyez peut-être un truc qui m’échappe.
Qu’est-ce que je ne vois pas ?

Merci pour vos retours en tout cas.
Je vais avancer avec des wait et des click du coup pour le moment, en espérant ne pas me faire bannir :wink:

Ah je vois que ça veut jouer du curseur ^^"

Si tu veux jouer avec le curseur il te faudra (à priori) passer par du headless browser pour avoir tous les droits. Je n’ai pas tant joué que ça avec l’api d’Electron / Chrome mais je sais que tu peux y arriver comme suit:

window.webContents.sendInputEvent({
      type: 'mousemove',
      x: 1400,
      y: 500,
      movementX: 1,
      movementY: 1
    });

N’hésite pas à nous montrer le résultat si tu l’implémente ;D

Sinon je pense en effet que tu te prends trop la tête :slight_smile:

(J’ai un système similaire en place qui se balade au dessus d’éléments random sur la page pour simuler une navigation naturelle. Je ne l’utilise vraiment que sur des sites trèèèès tatillons. Pas sûr que Facebook le soit vraiment pour le coup)

Salut @mnmlstrntreprnr,

Merci beaucoup pour ton retour.
Il existe des sites plus tatillons que FB, je trouve ça surprenant mais en même temps j’ai une expérience assez faible dans le domaine. Si c’est possible de partager les noms, je suis preneur.

De mon côté j’avance avec Chromeless en effet.
Et promis, si j’implémente le human scroll et le human move, j’open-source et je posterai ici, avec plaisir.

Belle soirée.
Merci encore pour les conseils, c’est très chouette !

1 « J'aime »

Je vais être franc avec toi, mis à part pour m’amuser, je ne travaille pas du tout sur Facebook. Donc je ne saurais te dire ce qu’ils ont pu mettre en place :slight_smile:

Pour te filer un peu plus d’infos, je bosse encore sous Nightmare.js (headless browser avec l’engine de chrome - mais qui n’utilise pas le headless natif qui est sorti que « tout récemment »).

Et sinon j’ai zappé la source dans ma réponse précédente. L’exemple est basé sur un plugin Nightmare.js justement. Tu devrais pouvoir chopper quelques idées : https://github.com/Mr0grog/nightmare-real-mouse.

Have fun!

1 « J'aime »

Un petit nouveau dans cette passionnante série des headless :slight_smile:


:fire: :heart:

Niveau :mouse: tu devrais pouvoir t’amuser @Alexandre.Bourlier
image

5 « J'aime »

Par la l’équipe de Chrome Devtools de chez Google en plus. Merci pour le partage @VivianSolide :slight_smile:

Pour compléter ta réponse, je viens de découvrir (via le repo Google) une liste suuuuuper intéressante d’outils basés sur Chrome Headless :smiley:

2 « J'aime »

Sur Zenoposter tu peux utiliser « Mouse Emulation » :wink:

2 « J'aime »

Le seul hic c’est que ton move sera dans tous les cas rectiligne/linéaire, et non pas imparfait comme peut l’être le mouvement de la main d’un humain. Ne te prends pas trop la tête là dessus je pense :slight_smile:

Je pense que ça se code l’aléa nécessaire mais je t’entends sur la non prise de tête :slight_smile:

Ah j’ai oublié sur iMacros (version PRO avec son propre navigateur), tu simules aussi le déplacement de la souris, ça enregistre de A à Z ce que vous faites.

J’utilisais http://www.murgaa.com/ pour automatiser ma souris la nuit :slight_smile: