Maison > interface Web > js tutoriel > le corps du texte

Utilisez adb shell+node.js pour réaliser que Douyin récupère automatiquement les enveloppes rouges

php中世界最好的语言
Libérer: 2018-04-12 16:52:54
original
4291 Les gens l'ont consulté

Cette fois, je vais vous apporter les précautions sur la façon d'utiliser adb shell+node.js pour récupérer automatiquement les enveloppes rouges sur Douyin, et comment utiliser adb shell+node.js pour récupérer automatiquement les enveloppes rouges sur Douyin Qu'est-ce que c'est ? Voici des cas réels.

La logique est très simple. Après la lecture de la vidéo Douyin , s'il s'agit d'une vidéo à enveloppe rouge, une enveloppe rouge apparaîtra. Notre logique de simulation est la suivante :

  1. Cliquez au centre de l'écran. S'il y a une enveloppe rouge, ouvrez l'enveloppe rouge. S'il n'y a pas d'enveloppe rouge, la vidéo sera mise en pause.

  2. Cliquez sur le bouton de retour. S'il y a une enveloppe rouge, fermez l'interface de l'enveloppe rouge. S'il n'y a pas d'invite d'enveloppe rouge, cliquez à nouveau sur Quitter (en fait, elle est affichée). ne sort pas).

  3. Faites glisser votre doigt vers le haut pour passer à la vidéo suivante.

Cliquez, revenez et faites glisser votre doigt vers le haut, en seulement trois étapes. Cela fonctionne qu'il y ait ou non une enveloppe rouge, à condition de calculer le temps.

Code

Ce qui suit est un morceau de code node.js :

touch.js

var process = require('child_process');
function exec(shell) {
 process.exec(shell,function (error, stdout, stderr) {
 if (error !== null) {
  console.log('exec error: ' + error);
 }
 });
}
function click() {
 console.log('click')
 exec(`adb shell input tap 400 600`)
 setTimeout(back, 1000)
}
function swipe() {
 console.log('swipe')
 exec(`adb shell input swipe 400 800 400 0 500`)
 setTimeout(click, 20000)
}
function back() {
 console.log('back')
 exec(`adb shell input keyevent 4`)
 setTimeout(swipe, 1000)
}
swipe()
Copier après la connexion

Activez le mode développeur du téléphone et activez le débogage USBS'il s'agit de Xiaomi, veuillez également activer le débogage USB (SécuritéParamètres). Connectez votre téléphone et ouvrez l'interface principale de Douyin. Enregistrez ce js localement et exécutez-le à l'aide de node.

$ node touch.js
Copier après la connexion
Si vous constatez que Douyin glisse toutes les 20 secondes, cela signifie le succès~

Principe

Les articles similaires à l'utilisation du shell adb pour faire fonctionner les téléphones mobiles incluent également les opérations de saut, etc. Le principe est expliqué ci-dessous.

child_process.exec(command[, options][, callback])
Copier après la connexion
La fonction de cette méthode est de générer un shell, puis d'exécuter la commande dans le shell et de mettre en mémoire tampon toute sortie générée. Pour plus de détails, veuillez vous référer au document de référence. En fait, cela équivaut à exécuter des scripts et des commandes shell. Nous l'utilisons pour exécuter des commandes adb shell.

coque adb

adb est un outil de développement permettant de connecter des ordinateurs aux téléphones mobiles. Toutes les opérations informatiques sur les téléphones mobiles sont en fait effectuées par adb, y compris divers assistants de téléphonie mobile qui vous aident à installer des applications. PS : Je travaille sur un téléphone portable depuis tellement longtemps, et je viens de découvrir cette fonction intéressante aujourd'hui... Soupir...

adb shell peut installer apk, afficher les informations du téléphone mobile, exploiter les fichiers du téléphone mobile, simuler le comportement des clics et d'autres fonctions, il est très puissant. Notre objectif principal ici est de simuler le comportement de clic de l'entrée du shell adb. Les fonctions sont répertoriées ci-dessous :

// 输入文本 content
$ adb shell input text “hello” 
// 点击返回按钮 keynumber
$ adb shell input keyevent 4
// 点击屏幕某个点 x y
$ adb shell input tap 400 400
// 滑动 x1 y1 x2 y2 time
$ adb shell input swipe 400 800 400 0 500
// 下面三个不太清楚,再研究
$ adb shell input press
$ adb shell input roll
$ adb shell input tmode
Copier après la connexion
Pour plus de valeurs correspondantes de clés, vous pouvez voir les valeurs correspondantes de

Android keyevent Grâce à ces commandes, nous pouvons effectuer quelques opérations simples sur le téléphone~

.

Enfin

C'est en fait une logique très simple, mais cela m'a donné beaucoup d'inspiration. S'il y a des opérations simples dans le futur, je peux utiliser adb et node pour les répéter ~ Enfin, je me plaindrai : il y a vraiment peu d'enveloppes rouges dessus. Douyin. J'ai passé 3 heures à naviguer hier, ce n'est que quelques centimes, ce qui n'est pas suffisant pour la facture d'électricité. Traitez-le simplement comme un divertissement ~

PS : ce qui suit présente les valeurs correspondantes​​de l'événement clé Android

Chaque valeur de l'événement clé Android peut être utilisée lors de l'utilisation de l'entrée du shell adb.

KEYCODE_UNKNOWN=0;
KEYCODE_SOFT_LEFT=1;
KEYCODE_SOFT_RIGHT=2;
KEYCODE_HOME=3;
KEYCODE_BACK=4;
KEYCODE_CALL=5;
KEYCODE_ENDCALL=6;
KEYCODE_0=7;
KEYCODE_1=8;
KEYCODE_2=9;
KEYCODE_3=10;
KEYCODE_4=11;
KEYCODE_5=12;
KEYCODE_6=13;
KEYCODE_7=14;
KEYCODE_8=15;
KEYCODE_9=16;
KEYCODE_STAR=17;
KEYCODE_POUND=18;
KEYCODE_DPAD_UP=19;
KEYCODE_DPAD_DOWN=20;
KEYCODE_DPAD_LEFT=21;
KEYCODE_DPAD_RIGHT=22;
KEYCODE_DPAD_CENTER=23;
KEYCODE_VOLUME_UP=24;
KEYCODE_VOLUME_DOWN=25;
KEYCODE_POWER=26;
KEYCODE_CAMERA=27;
KEYCODE_CLEAR=28;
KEYCODE_A=29;
KEYCODE_B=30;
KEYCODE_C=31;
KEYCODE_D=32;
KEYCODE_E=33;
KEYCODE_F=34;
KEYCODE_G=35;
KEYCODE_H=36;
KEYCODE_I=37;
KEYCODE_J=38;
KEYCODE_K=39;
KEYCODE_L=40;
KEYCODE_M=41;
KEYCODE_N=42;
KEYCODE_O=43;
KEYCODE_P=44;
KEYCODE_Q=45;
KEYCODE_R=46;
KEYCODE_S=47;
KEYCODE_T=48;
KEYCODE_U=49;
KEYCODE_V=50;
KEYCODE_W=51;
KEYCODE_X=52;
KEYCODE_Y=53;
KEYCODE_Z=54;
KEYCODE_COMMA=55;
KEYCODE_PERIOD=56;
KEYCODE_ALT_LEFT=57;
KEYCODE_ALT_RIGHT=58;
KEYCODE_SHIFT_LEFT=59;
KEYCODE_SHIFT_RIGHT=60;
KEYCODE_TAB=61;
KEYCODE_SPACE=62;
KEYCODE_SYM=63;
KEYCODE_EXPLORER=64;
KEYCODE_ENVELOPE=65;
KEYCODE_ENTER=66;
KEYCODE_DEL=67;
KEYCODE_GRAVE=68;
KEYCODE_MINUS=69;
KEYCODE_EQUALS=70;
KEYCODE_LEFT_BRACKET=71;
KEYCODE_RIGHT_BRACKET=72;
KEYCODE_BACKSLASH=73;
KEYCODE_SEMICOLON=74;
KEYCODE_APOSTROPHE=75;
KEYCODE_SLASH=76;
KEYCODE_AT=77;
KEYCODE_NUM=78;
KEYCODE_HEADSETHOOK=79;
KEYCODE_FOCUS=80;//*Camera*focus
KEYCODE_PLUS=81;
KEYCODE_MENU=82;
KEYCODE_NOTIFICATION=83;
KEYCODE_SEARCH=84;
KEYCODE_MEDIA_PLAY_PAUSE=85;
KEYCODE_MEDIA_STOP=86;
KEYCODE_MEDIA_NEXT=87;
KEYCODE_MEDIA_PREVIOUS=88;
KEYCODE_MEDIA_REWIND=89;
KEYCODE_MEDIA_FAST_FORWARD=90;
KEYCODE_MUTE=91;
Copier après la connexion
D'accord, c'est tout.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée de l'utilisation des mutations et des actions Vuex

vue détermine si le contenu d'entrée comporte des espaces

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!