python selenium mendapat kod pengesahan imej
PHP中文网
PHP中文网 2017-06-12 09:21:28
0
4
1601

Saya mahu cache kod pengesahan imej secara setempat, dan kemudian biarkan pengguna melihat imej melalui perkhidmatan web dan taip kod secara manual untuk log masuk.
Memandangkan operasi rasmi adalah tanpa antara muka, tangkapan skrin selenium tidak boleh digunakan.
Selain tangkapan skrin selenium dan kaedah klik kanan, adakah cara lain?

Pada masa ini saya berfikir untuk menggunakan js untuk meminta semula kod pengesahan ke dalam kanvas dan kemudian keDataURL ke dalam kod png base64 dan mengeluarkannya kepada Dom dan kemudian menggunakan selenium untuk mendapatkannya.
Ujian kod berikut menggunakan kod pengesahan pintu masuk log masuk pusat membeli-belah mudah alih.

$('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'));
};

Jika URL yang meminta kod pengesahan adalah daripada domain yang berbeza daripada URL log masuk, ralat merentas domain akan dilaporkan.
Anda juga perlu menguji sama ada imej kod pengesahan yang diperoleh dengan cara ini masih wujud dalam tempoh sah sesi semasa.
Bagaimana untuk menyelesaikan masalah merentas domain di atas?

PHP中文网
PHP中文网

认证0级讲师

membalas semua(4)
学霸

Anda perlu menangkap paket terlebih dahulu untuk melihat laluan permintaan imej, dan kemudian gunakan permintaan untuk memuat turun imej

漂亮男人

Cara di atas adalah kaedah, anda juga boleh menggunakan selenium + PhantomJS

过去多啦不再A梦

Kod pengesahan gambar dan kuki semasa membaca gambar disepadukan

Hanya pastikan kod pengesahan yang anda jawab adalah konsisten dengan kuki.

小葫芦

Akhirnya saya menggunakan kaedah 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');
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan