Python Selenium obtient le code de vérification d'image
PHP中文网
PHP中文网 2017-06-12 09:21:28
0
4
1543

Je souhaite mettre en cache le code de vérification de l'image localement, puis laisser l'utilisateur voir l'image via le service Web et saisir manuellement le code pour se connecter.
Étant donné que l'opération officielle est sans interface, les captures d'écran de sélénium ne peuvent pas être utilisées.
En plus de la capture d'écran au sélénium et de la méthode du clic droit, existe-t-il un autre moyen ?

Actuellement, je pense utiliser js pour demander à nouveau le code de vérification dans Canvas, puis toDataURL dans le code png base64 et le transmettre à Dom, puis utiliser le sélénium pour l'obtenir.
Le test de code suivant utilise le code de vérification d'entrée de connexion du centre commercial mobile.

$('body').append('<canvas id="CAVASIMG"></canvas>');
var img=new Image();
img.src="http://shop.10086.cn/i/authImg";
var d=document.getElementById("CAVASIMG");
var cxt=d.getContext("2d");
img.onload = function(){
    d.width = img.width;d.height = img.height;
    cxt.drawImage(img,0,0);
    console.log(d.toDataURL('png'));
};

Si l'URL demandant le code de vérification provient d'un domaine différent de l'URL de connexion, une erreur interdomaine sera signalée.
Vous devez également tester si l'image du code de vérification ainsi obtenue existe toujours pendant la période de validité de la session en cours.
Comment résoudre le problème inter-domaines ci-dessus ?

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(4)
学霸

Vous devez d'abord capturer le paquet pour voir le chemin de requête de l'image, puis utiliser les requêtes pour télécharger l'image

漂亮男人

La méthode ci-dessus est une méthode, vous pouvez également utiliser Selenium + PhantomJS

过去多啦不再A梦

Le code de vérification de l'image et les cookies lors de la lecture de l'image sont intégrés

Assurez-vous simplement que le code de vérification auquel vous répondez est cohérent avec les cookies.

小葫芦

Au final j'ai utilisé la méthode js

var img=document.getElementById('IMGCODEID');
var d=document.createElement('CANVAS');
var cxt=d.getContext('2d');
d.width=img.width;d.height=img.height;
cxt.drawImage(img,0,0);
img.src=d.toDataURL('png');
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!