TC官方合作论坛

 找回密码
 立即注册
查看: 1553|回复: 13
打印 上一主题 下一主题

[已解决] 问个世界级难题!请高手指点,菜鸟小鸟进来学习

[复制链接]
跳转到指定楼层
楼主
发表于 2012-5-18 22:44:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
正在做新浪微博自动注册的工具,要获取网页上的验证码,然后用TC的图片控件显示在窗体上。

基本思路是,1.首先获得验证码图片--2.保存到本地指定文件夹--3.设置到图片控件
第一步就难住了,因为验证码是不缓存到缓存文件夹里面的,所以无法用拷贝这种传统手段来实现。请大神指教,TC能不能够实现我想要的效果,指点下思路就行了,其它的我来研究。
新浪微博注册地址:http://weibo.com/signup/signup.php?lang=zh-cn

======================================
突然想到 很多浏览器的“保存网页为图片”的功能,特别是基于IE内核开发的浏览器,比如360安全浏览器的截图功能,应该就是调用WebBrowser的截图方法。有点思路了。。
回复

使用道具 举报

10#
发表于 2012-5-19 08:48:47 | 只看该作者
webbrowser
是VB的一个控件..相当于TC的浏览器控件.
但是相对来说方法会多一点.
.

For Each X In Web1.Document.All

       If X.tagName = "IMG" Then

这2句的意思大概就是遍历当前网页所有元素,找到 tagName为"IMG",一般也就是图片的元素.

         Set CtrlRange = Web1.Document.body.createControlRange()

            CtrlRange.Add (X)

            CtrlRange.execCommand ("Copy")

这几句不懂,不过百度了一下,大概就是 将图片复制到剪切板...

Set Image1.Picture = Clipboard.GetData

这句很明显,把剪切板的图片显示到图片控件中...


当然,这些函数要看TC是否封装了.如果没有的话...也无法使用
回复 支持 反对

使用道具 举报

14#
发表于 2012-5-20 21:47:41 | 只看该作者
虚心学习
回复 支持 反对

使用道具 举报

13#
发表于 2012-5-19 16:20:58 | 只看该作者
我也发现了TC没有遍历元素这个功能,因为确实某些网站的元素通过普通方法是无法得到的,
以前用vb都是用遍历+判断.

不过TC在执行js脚本这点比较方便,只不过对js无研究,所以深入不了.
呵呵
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2012-5-19 16:09:27 | 只看该作者
回复 10楼cylhb的帖子

TC好像没有遍历网页所有元素这个方法,看来这个问题暂时是解决不了了。谢谢指点,和你讨论问题很愉快!
回复 支持 反对

使用道具 举报

11#
发表于 2012-5-19 12:56:01 | 只看该作者
..................
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2012-5-19 01:46:41 | 只看该作者
回复 7楼cylhb的帖子

百度GOOGLE了一晚上,发现有人在做VB开发的时候是调用webbrowser,但是我不懂这个,不知道webbrowser是什么东西,不知道TC支不支持这种原理。

这一篇文章讲的是截取验证码的问题,但是里面的代码我看不懂。
http://tech.ddvip.com/2009-12/1260406038140728.html


问题的链接是 http://zhidao.baidu.com/question/122912233.html


  1. VB怎么截取网页中验证码图片?
  2. 2009-10-25 18:36 提问者: zoand | 浏览次数:1271次
  3. VB中怎么实现将网页上的图片保存到本地?
  4. 还有,怎么截取一些网页登陆界面中的验证码图片?
  5. 或者说用WEBBrowser 打开指定URL后,怎么将其中的
  6. 验证码图片保存到本地(还有显示在窗体的IMAGE控件中,这两种都说下吧~)问题补充:

  7. 叨,说了效果啊!!
  8. 有效果我还跑来问么?
  9. 我来帮他解答
  10. 输入内容已经达到长度限制还能输入 9999 字插入图片删除图片插入地图删除地图插入视频视频地图不登录也可以回答参考资料:提交回答取消
  11.       
  12. 2009-10-26 12:06 满意回答 小左,我真的郁闷哈

  13. 我不是给你说了嘛?

  14. Dim X
  15. Dim CtrlRange
  16. For Each X In Web1.Document.All
  17.        If X.tagName = "IMG" Then
  18.             Web1.Stop
  19.             Set CtrlRange = Web1.Document.body.createControlRange()
  20.             CtrlRange.Add (X)
  21.             CtrlRange.execCommand ("Copy")
  22.             Set Image1.Picture = Clipboard.GetData
  23.         End If
  24. Next

  25. Web1就是WebBrowser控件,Image1就是IMAGE控件啊?

  26. 等WebBrowser控件网页加载完毕就用上面的代码获得验证码图片了

  27. 保存本地更简单

  28. SavePicture Image1.Picture, "c:\hxheiyao.bmp"

复制代码
回复 支持 反对

使用道具 举报

8#
发表于 2012-5-19 01:32:17 | 只看该作者
看了下   目前的办法就是找到元素 然后大漠前台截图了
回复 支持 反对

使用道具 举报

7#
发表于 2012-5-19 01:23:03 | 只看该作者
-.-确实是难题..
分析下源代码吧,找到验证图片真实连接,下载吧..
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-5-19 01:18:26 | 只看该作者
回复 5楼cylhb的帖子

呵呵,控制浏览器的显示范围,这个是下策,截图在放到图片控件这是下下策。这两个我都想过了,因为我设置的浏览器大小是1,1,等于是在窗体上隐藏浏览器,所以放弃了上面两种方法。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-16 21:37 , Processed in 0.404619 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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