找回密码
 加入
搜索
查看: 1961|回复: 6

为什么这个网址中的验证码图片不能获取?

[复制链接]
发表于 2009-10-30 14:19:47 | 显示全部楼层 |阅读模式
本帖最后由 老榆头 于 2009-10-30 21:24 编辑

详见二楼代码

利用论坛上的好像是BOB的一段代码
我想首先获取图片在自己机器上的位置

代码中给了三个网址,其中前两个可以
第三个获取不到,请问原因在哪里,如何解决?
谢谢
 楼主| 发表于 2009-10-30 14:20:17 | 显示全部楼层
本帖最后由 老榆头 于 2009-10-30 15:32 编辑
#include <IE.au3>

Dim $i=0
;测试1        ---        可以获取
;$url="http://service.cheshi.com/user/register.php"        ;含有验证码的页面
;$name="validate.php"                                                                ;验证码图片名称

;测试2        ---        可以获取
;$url="http://www.bridal100.com/zhuce/index.asp"        ;含有验证码的页面
;$name="safecode.asp"                                                                ;验证码图片名称

;测试3        ---        不可以
$url="http://login.jyb.cn/regapply.php"        ;含有验证码的页面
$name="image.php"                                                                ;验证码图片名称


$oIE = _IECreate ($url,0,1,0)
sleep(5000)

$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
        ;ConsoleWrite("name:" & $oImg.nameProp & @CRLF)
        $i+=1
        If $oImg.nameprop=$name Then
           $oPic = $oIE.Document.body.createControlRange()
           $oPic.Add($oImg)
           $oPic.execCommand("Copy")
           $img = ClipGet()
        EndIf
Next
ConsoleWrite("图片位置:" & $img & @CRLF)
 楼主| 发表于 2009-10-30 15:32:15 | 显示全部楼层
代码执行之后
我可以通过ctrl+V将图片粘贴到画图中
但图片位置却写不出
发表于 2009-10-30 16:22:48 | 显示全部楼层
#include <IE.au3>
#Include <Clipboard.au3>
#Include <ScreenCapture.au3>
Dim $i=0
$url="http://login.jyb.cn/regapply.php"        ;含有验证码的页面
$name="image.php"                            
$oIE = _IECreate ($url,0,1,0)
sleep(5000)
$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
        $i+=1
        If $oImg.nameprop=$name Then
           $oPic = $oIE.Document.body.createControlRange()
           $oPic.Add($oImg)
           $oPic.execCommand("Copy")
           $img = ClipGet()
                   _ClipBoard_Open (0)
                        Local $hMemory = _ClipBoard_GetDataEx ($CF_BITMAP) 
                        _ClipBoard_Close ()
                        _ScreenCapture_SaveImage (@ScriptDir & "\test.bmp", $hMemory)
        EndIf
Next
 楼主| 发表于 2009-10-30 16:55:15 | 显示全部楼层
太棒了!可以呀

是的,图片可以ctrl+v,那就说明已经在剪贴板中了
就可以把它保存起来
只是从来没有这么用过,也没有想到

谢谢管理员,谢谢!

-----------------------
就是,还有一点不明白:
为什么有的页面,可以,有的却不可以?
发表于 2009-10-30 18:05:03 | 显示全部楼层
涉及到内存里的东西,此站点验证码直接生成在内存中,地址为0xC8051000 这种形势
 楼主| 发表于 2009-10-30 21:23:30 | 显示全部楼层
哦,也就是说,这是由验证码的生成程序决定的,是不是这意思
恐怕要写过验证码,可能会深入了解一些

再次感谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-18 15:54 , Processed in 0.080108 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表