标题:VB获取网页验证码失败,请高手指点
只看楼主
wyf_andy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
结帖率:0
已结贴  问题点数:5 回复次数:14 
VB获取网页验证码失败,请高手指点
Private Sub Command1_Click()
    Dim X
    Dim CtrlRange
    For Each X In webAuto.Document.All
        If X.tagName = "IMG" Then
             Set CtrlRange = webAuto.Document.body.createControlRange()
             CtrlRange.Add (X)    '此处提示出错  对象不支持该属性或方法
             CtrlRange.execCommand ("Copy")
             Set Image1.Picture = Clipboard.GetData
         End If
    Next
End Sub

Private Sub Form_Load()
    webAuto.Navigate "http://www.
End Sub

有的网页可以成功获取,可这个网页提示出错请高手指点,感谢!

[此贴子已经被作者于2017-6-3 00:43编辑过]

搜索更多相关主题的帖子: 验证码 网页 
2017-06-03 00:39
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:3 
webbrowser控件的Document.All并不能获取所有元素,因为有的元素是通过js代码产生的,下述代码可能可以得到全部源代码:
Dim XmlHttp,a
Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET", "http://www., True
XmlHttp.send
While XmlHttp.readyState <> 4
DoEvents
Wend
a=XmlHttp.Text
'接下来通过分析源代码得到验证图片地址
2017-06-03 21:21
wyf_andy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
得分:0 
webbrowser控件的Document.All并不能获取所有元素,因为有的元素是通过js代码产生的,下述代码可能可以得到全部源代码:
Dim XmlHttp,a
Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET", "http://www., True
XmlHttp.send
While XmlHttp.readyState <> 4
DoEvents
Wend
a=XmlHttp.Text   '此处提示出错,提示此对对象不支持该属性或方法
还有一个问题就是,这个验证图片需要点一下输入验证码文本框才能显示出来
2017-06-07 13:31
wyf_andy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
得分:0 
回复 2楼 xzlxzlxzl
webbrowser控件的Document.All并不能获取所有元素,因为有的元素是通过js代码产生的,下述代码可能可以得到全部源代码:
Dim XmlHttp,a
Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET", "http://www., True
XmlHttp.send
While XmlHttp.readyState <> 4
DoEvents
Wend
a=XmlHttp.Text   '此处提示出错,提示此对对象不支持该属性或方法
还有一个问题就是,这个验证图片需要点一下输入验证码文本框才能显示出来
2017-06-07 13:32
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:3 
抓包结果:

POST /Home/GetCaptchaForRegister HTTP/1.1
X-Requested-With: XMLHttpRequest
Accept: application/json, text/plain, */*
c02b5: 1NosPtSB3EkeXXXjHjoQJnI7EvxJeXntxb3ZqbTycDJDfqMZk2cpHIUtTQx3w09gBsVk15WY2XN66ksJSF_L0MjCwt01
Referer: http://www.
Accept-Language: zh-CN
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Host: www.
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ClientID=12308235013744023413; language=zh-CN; __RequestVerificationToken=asXzX0LVRhwEIhdIoa4rVh0-9tC19XXIO0pGnHicYMfFBwr7biL-iB4tB8Xoeu2kpDNXNOJapHQPlHFCqocQztXKJ-01; DeviceCheck=1


直接返回
data:image/png;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAASACgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDY1/xDqmp6w2j6FDZR2tpaG8kN4zRrNGrYwNuMDj2HrjtVu/FureJktrbQbK0ggSx+3TJdswQqpxsBXHcEDoOO3abxhpl34ju7W6s/Dtrf6baoyI7zi3cEfxEkjMY/u49enbLj8Oa3YQWlzpNgt/axaf8AYp/9JEAdgzOXBfHyBj04PHY9MYKlyJ6X/wCH319N7GUnJy73/Hb8N/6tfU1zxm9x4QttStrQRwyx5gszk+ayjL524/doAckY6DoTxX8T+NrtPD9rJbWBK/Z45nQRMIewJYgjCZyAM5z+lF/Aur3egs1lqgSG2077MsTRLtnIJZwrMRtUsTycdBnpxpX+ka/rHwzXTUfzzBCgBYJD5pVgcddoVAMZzztz16NRoKSs0/e/AlOcrXvqvv2/Bf1c7FSdaUE/6PpEI5/h87H8lH+eehSIDrCKD+40iAc/w+dt/kox/k9CuE2S5leyfm/08h3in91o0UcfyJ5qrtXgYAPGPTgflR4p/daNFHH8ieaq7V4GADxj04H5UUULoOp9v/Cv1DxT+60aKOP5E81V2rwMAHjHpwPyo8U/utGijj+RPNVdq8DAB4x6cD8qKKF0Cp9v/Cv1DxT+60aKOP5E81V2rwMAHjHpwPyoooqobHJjP4i9D//Z


你看着办吧!
反正这个函数,我稍微找了一下,没找到在哪里写的,怎么运行的,都没找到。你慢慢找,找到后,用VB重写一个就OK了。

授人于鱼,不如授人于渔
早已停用QQ了
2017-06-07 16:59
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:0 
哦,记错了,应该是“a=XmlHttp.Responsetext”
2017-06-09 05:33
wyf_andy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
得分:0 
回复 6楼 xzlxzlxzl
多谢,这样是可以获取源码了,可是还有一个问题想请教您,这个验证图片需要点一下验证码文本框才能显示出来验证码,这样应该如何操作?
2017-06-09 14:28
wyf_andy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-6-2
得分:0 
回复 5楼 风吹过b
这是什么函数没找到相关资料,不知道应该如何操作,还得请您帮我找点这方面的资料,多谢!
2017-06-09 14:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
POST /Home/GetCaptchaForRegister HTTP/1.1           验证码的页面,使用POST方式请求
X-Requested-With: XMLHttpRequest   
Accept: application/json, text/plain, */*
c02b5: 1NosPtSB3EkeXXXjHjoQJnI7EvxJeXntxb3ZqbTycDJDfqMZk2cpHIUtTQx3w09gBsVk15WY2XN66ksJSF_L0MjCwt01
Referer: http://www.          来源页面        
Accept-Language: zh-CN
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Host: www.                             主机名
Content-Length: 0                                  提示数据为空
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ClientID=12308235013744023413; language=zh-CN; __RequestVerificationToken=asXzX0LVRhwEIhdIoa4rVh0-9tC19XXIO0pGnHicYMfFBwr7biL-iB4tB8Xoeu2kpDNXNOJapHQPlHFCqocQztXKJ-01; DeviceCheck=1         Cookie

这是 HTTP 协议的封包内容。
不管是 直接使用 webbrows 还是 XmlHttp ,都是使用这个协议。
没时间仔细测试了,我没找到对应的函数是在那里的。

你可以不是,找到 输入验证码的那个框,然后 给焦点,或者 单击 。
感觉可以。

授人于鱼,不如授人于渔
早已停用QQ了
2017-06-09 18:14
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:0 
回复 8楼 wyf_andy
可以通过遍历docment.element,然后使用click方法,可实现自动点击功能。你自己百度吧,好多这方面的代码。
2017-06-09 19:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477606-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139550 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved