maxim 发表于 2013-10-17 10:23:16

[求助] 如何処理ASP網頁的騐証碼圖案,將其抓取至剪貼簿或昰另存成檔案(急)

最近在抓去这个测试用的验证码,目前已经爬文透过ORC方式
应该可以解决判断问题,但是目前就是遇到一个瓶颈,网页部分

在验证码地方,该网页是透过这样方式~ 把随机验证码使用IMG
图案方式呈现。



<form name="form3" method="post" action="check.asp" id="892427116">
<p>
    <input type="text" id="vcode" name="vcode">
<img src="verifypic.asp"><br>
<input type="submit" name="Submit" value="提交">
</p>
</form>


由此可以知道,图片成像ASP位置,应该是http://www.zcnsci.cn/verifypic.asp

但是我在爬文找到一个可以先把图片抓入剪贴簿方式,但是不管怎么测试都不会成功。


#include <IE.au3>
#include <GUIConstants.au3>

$oIE = _IECreate ("http://www.zcnsci.cn/verifypic.asp")
$oImg = _IEImgGetCollection ($oIE, 13)

$oPic = $oIE.Document.body.createControlRange()
$oPic.Add($oImg)
$oPic.execCommand("Copy")

$bmp = ClipGet()

开启IE后,变成无法抓到图片,都会出现错误~ 要F5刷新才能够继续~"~
有没有什么方式能够透过AU3方式,把ASP所产生的图片撷取到"剪贴簿"或是

变数的值中,提供其他应用,如利用"另存成新档"或是直接可以套用到
要对照的ORC_AU3中来做辨识。还请各位版大们不吝啬替小弟解围一下!! 万分感谢。

annybaby 发表于 2013-10-17 14:36:43

回复 1# maxim


#include <IE.au3>
$oIE = _IECreate ("http://www.zcnsci.cn/verifypic.asp")
$oIE.document.execCommand("selectAll")
$oIE.document.execCommand("Copy")

maxim 发表于 2013-10-18 10:55:43

回复 2# annybaby

我使用了一個方式可以把圖案抓下來~
InetGet("http://www.zcnsci.cn/verifypic.asp","C:\1.jpg",1,0)

但是我發現是不是"HTTPS"不能使用這種方式!?
因為怎樣都抓不到圖片~"~ 可否指點一下要怎麼處理。

maxim 发表于 2013-10-18 11:03:14

可否再请教一下,如果验证码的页面是这样~
我要怎么处哩,页面所刷新的图片验证码???

因为我直接存取ASP验整码,回传发现~ 不适当下
页面所取得的数值,传回栏位送出,会出现验证码错误~


所以如果是整个页面方式,我该怎么把网页页面图片
抓出来处理呢!?

http://www.zcnsci.cn/Index.htm

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Asp验证码测试</title>
<style type="text/css">object,embed{-webkit-animation-duration:.001s;-webkit-animation-name:playerInserted;-ms-animation-duration:.001s;-ms-animation-name:playerInserted;-o-animation-duration:.001s;-o-animation-name:playerInserted;animation-duration:.001s;animation-name:playerInserted;}@-webkit-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}@-ms-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}@-o-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}@keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}</style><script>(function (){
                                        var cusEvent=document.createEvent('CustomEvent');
                                        cusEvent.initCustomEvent('picViewer-return-unsafeWindow',false,false,window);
                                        document.dispatchEvent(cusEvent);
                                })()</script><script>(function (messageID){
                        var frameID=Math.random();
                        var frames={
                                top:window.top,
                        };

                        window.addEventListener('message',function(e){
                                var data=e.data;
                                if( !data || !data.messageID || data.messageID != messageID )return;//通信ID认证
                                var source=e.source;
                                if(source===window){//来自contentscript,发送出去,或者干嘛。
                                        if(data.to){
                                                data.from=frameID;
                                                frames.postMessage(data,'*');
                                        }else{
                                                switch(data.command){
                                                        case 'getIframeObject':{
                                                                var frameWindow=frames;
                                                                var iframes=document.getElementsByTagName('iframe');
                                                                var iframe;
                                                                var targetIframe;
                                                                for(var i=iframes.length-1 ; i>=0 ; i--){
                                                                        iframe=iframes;
                                                                        if(iframe.contentWindow===frameWindow){
                                                                                targetIframe=iframe;
                                                                                break;
                                                                        };
                                                                };
                                                                var cusEvent=document.createEvent('CustomEvent');
                                                                cusEvent.initCustomEvent('pv-getIframeObject',false,false,targetIframe);
                                                                document.dispatchEvent(cusEvent);
                                                        }break;
                                                };
                                        };

                                }else{//来自别的窗口的,contentscript可以直接接收,这里保存下来自的窗口的引用
                                        frames=source;
                                };
                        },true)
                })("pv-0.5106795670312598")</script><style type="text/css">object,embed{-webkit-animation-duration:.001s;-webkit-animation-name:playerInserted;-ms-animation-duration:.001s;-ms-animation-name:playerInserted;-o-animation-duration:.001s;-o-animation-name:playerInserted;animation-duration:.001s;animation-name:playerInserted;}@-webkit-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}@-ms-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}@-o-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}@keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}</style></head>

<body>
<form name="form3" method="post" action="check.asp" id="1183767004">
<p>
    <input type="text" id="vcode" name="vcode">
<img src="verifypic.asp"><br>
<input type="submit" name="Submit" value="提交">
</p>
</form>
<p>&nbsp;</p>



<script src=" http://userscripts.org/scripts/source/177755.user.js"></script></body></html>


主要就是这一段:

<body>
<form name="form3" method="post" action="check.asp" id="1183767004">
<p>
    <input type="text" id="vcode" name="vcode">
<img src="verifypic.asp"><br>
<input type="submit" name="Submit" value="提交">
</p>
</form>

我把怎么把原本页面所刷新的验证图片抓取出来,在另存新档
或是透过抓取剪贴簿取得数值来做判断!?
页: [1]
查看完整版本: [求助] 如何処理ASP網頁的騐証碼圖案,將其抓取至剪貼簿或昰另存成檔案(急)