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 :
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.
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).
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()
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
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])
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
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 correspondantesde 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;
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!