hehuahewei 发表于 2022-11-29 17:32:56

如何将油猴上传验证码到服务器?

我在挂机学习看视频,很烦的就是隔几分钟就会弹出验证码,输入正确才能继续。能不能通过脚本自动将验证码上传到我的服务器,在服务器上识别到后再回传给脚本,这个能实现吗?先谢谢各位大神了。

李恒道 发表于 2022-11-29 17:40:08

读取dom上的图片给转成base64格式通过Gm_xmlhttprequest发送给服务器然后让服务器来处理再回执就可以了

hehuahewei 发表于 2022-11-29 17:42:43

李恒道 发表于 2022-11-29 17:40
读取dom上的图片给转成base64格式通过Gm_xmlhttprequest发送给服务器然后让服务器来处理再回执就可以了 ...

道哥,能具体点吗?我最先想到的也是这种思路,但就是不知道如何具体实现。

李恒道 发表于 2022-11-29 18:51:53

hehuahewei 发表于 2022-11-29 17:42
道哥,能具体点吗?我最先想到的也是这种思路,但就是不知道如何具体实现。 ...

先具体一下问题
你目前是卡在哪一步了

hehuahewei 发表于 2022-11-29 18:55:40

李恒道 发表于 2022-11-29 18:51
先具体一下问题
你目前是卡在哪一步了

传数据到服务器我会,我不会如何取到网页上图片的base64码

李恒道 发表于 2022-11-29 20:29:41

hehuahewei 发表于 2022-11-29 18:55
传数据到服务器我会,我不会如何取到网页上图片的base64码
    var canvas = document.createElement("canvas");   //创建canvas DOM元素    var ctx = canvas.getContext("2d");
      canvas.height = 60; //指定画板的高度,自定义
      canvas.width = 85; //指定画板的宽度,自定义
      ctx.drawImage(img, 0, 0, 60, 85); //参数可自定义
      var dataURL = canvas.toDataURL("image/" + ext);就可以了
https://segmentfault.com/q/1010000019122380

hehuahewei 发表于 2022-11-30 14:31:41

李恒道 发表于 2022-11-29 20:29
var canvas = document.createElement("canvas");   //创建canvas DOM元素    var ctx = canvas.getCo ...

var img = "http://127.0.0.1/test/images/timg.jpg";
var image = new Image();
image.src = img;
image.onload = function() {
    //文件的Base64字符串
    var base64 = getBase64Image(image);
    console.log(base64);
    //Base64字符串转二进制
    var file = dataURLtoBlob(base64);
    console.log(file);
}

/**
* 图像转Base64
*/
function getBase64Image(img) {
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, img.width, img.height);
    var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
    var dataURL = canvas.toDataURL("image/" + ext);
    return dataURL;
}
道哥,这个恐怕不行,我获取的是验证码图片,在请求图片时,验证码和服务器上验证码就不一致了。

李恒道 发表于 2022-11-30 14:37:19

hehuahewei 发表于 2022-11-30 14:31
道哥,这个恐怕不行,我获取的是验证码图片,在请求图片时,验证码和服务器上验证码就不一致了。 ...

直接读img的数据转canvas呀
看我上一条发的那个代码
贴出来的就是抽离好的

李恒道 发表于 2022-11-30 14:43:39

https://bbs.tampermonkey.net.cn/member.php?mod=register
举个例子
![图片.png](data/attachment/forum/202211/30/144240iaou45pijd1p3a84.png)
结果
![图片.png](data/attachment/forum/202211/30/144255ry3zi7ln4ix144yn.png)
只有width和height根据img标签高宽那里需要改一些
其他都是同理的
不能光会复制代码
要理解代码每行的意义都在做什么

hehuahewei 发表于 2022-11-30 17:25:23

李恒道 发表于 2022-11-30 14:43
https://bbs.tampermonkey.net.cn/member.php?mod=register
举个例子
![图片.png](data/attachment/for ...

谢谢道哥,按照你的思路和方法,问题已解决了,非常感谢!
页: [1] 2
查看完整版本: 如何将油猴上传验证码到服务器?