成功实现使用delphi获取百度的验证码图片(只获得图片,不进行识别,识别之后再研究吧O(∩_∩)O)

procedure TForm1.btn1Click(Sender: TObject);procedure doSomething(ms: TMemoryStream);varBuffer:Word;AjpgFile: TJPEGImage;beginms.Position := 0;if ms.Size = 0 thenExit;ms.ReadBuffer(Buffer,2); //读取文件的前2个字节,放到Buffer里面if Buffer=$4D42 then //如果前两个字节是以4D42[低位到高位]beginShowMessage('BMP'); //那么这个是BMP格式的文件endelse if Buffer=$D8FF then //如果前两个字节是以D8FF[低位到高位]beginShowMessage('JPEG'); //........一样 下面不注释了ms.Position := 0;AjpgFile := TJPEGImage.Create;AjpgFile.LoadFromStream(ms);Image1.Picture.Graphic := AjpgFile;endelse if Buffer=$4947 thenbeginShowMessage('GIF');endelse if Buffer=$5089 thenbeginShowMessage('PNG');end;end;
varOpenurl : string;elem: IHTMLElement;coll: IHTMLElementCollection;i: Integer;url, Text: string;d2,D:IHTMLDocument2;d1:IHTMLDocument;e:IHTMLElement;e2:IHTMLElement2;cp: IHTMLControlRange;img:IHTMLImgElement;ce:IHTMLControlElement;bmp:TBitmap ;r0:TRect;newbmp:TBitmap;r1:TRect;checkstr:string;MyHandle :THandle ;bmpPtr:Pointer;ms:TMemoryStream;   //内存流对象
beginms := TMemoryStream.Create;  //建立内存流对象IdHTTPBaiDu := TIdHTTP.Create(nil);IdHTTPBaiDu.ReadTimeout := 2000000;IdHTTPBaiDu.IOHandler := IdSSLIOHandlerSocketOpenSSL1.Create(nil);Openurl := 'https://passport.baidu.com/v2/?reg&u=http://www.baidu.com/&tpl=mn';
//  Openurl := 'http://zc.qq.com/chs/index.html';
//    Openurl := 'http://www.doubao.com/user/reg';//豆包网tryBaiDuWebBrowser.Navigate(Openurl);while BaiDuWebBrowser.Busy dobeginApplication.ProcessMessages;end;BaiDuWebBrowser.Stop;if BaiDuWebBrowser.Document = nil thenExit;//获取源代码D := BaiDuWebBrowser.Document as IHTMLDocument2;e :=d.body as IHTMLElement;e2 :=e as IHTMLElement2;cp :=e2.createControlRange as IHTMLControlRange;d2 :=BaiDuWebBrowser.Document as IHTMLDocument2;//下面是破解验证码coll := d.all;coll :=(coll.tags('img') as IHTMLElementCollection);for i := 0 to coll.Length - 1 dobegin//循环取出每个urlelem := (coll.item(i,0) as IHTMLElement);url :=Trim(string(elem.getAttribute(WideString('src'), 0)));//Text := Trim(string(elem.outertext));if Pos('doubao' , url) > 0 then  //豆包网beginif Pos('auth/checkcode',url) > 0 thenbeginIdHTTPBaiDu.Get(url,ms);doSomething(ms);Break;endendelse if Pos('qq.com' , url) > 0 then   //腾讯QQbeginif pos('getimage', url) > 0 thenbeginIdHTTPBaiDu.Get(url,ms);doSomething(ms);Break;endendelse if Pos('baidu.com' , url) > 0 then //百度beginif Pos('genimage',url) > 0thenbeginIdHTTPBaiDu.Get(url,ms);doSomething(ms);Break;end;end;end;finallyend;
end;

写的很烂,不过确实可以实现。嘻嘻~
用到的控件:TWebBrowser、IDhttp、IdSSLIOHandlerSocketOpenSSL还有一个image负责显示验证码图片。

需要使用两个dll包。delphi2007的可以使用的连接地址为:http://download.csdn.net/detail/sushengmiyan/4639225

一个成功获取百度注册页面验证码图片的源代码相关推荐

  1. 用layui做一个简易的登录注册页面

    用layui做一个简易的登录注册页面 1.首先在主页绑定一个点击事件,点击登录按钮就可以弹出一个弹出窗,一般商场登录页面不会跳转一个新页面,因为如果进入一个新页面,登录后需要跳转会原来的页面,这样会导 ...

  2. C#获取网页中的验证码图片(转载)

    有时候我们需要获得网页上的图片,尤其是向验证码这样的图片.这个方法就是将网页上的图片获取到PictureBox中.效果入下图所示. 右边是使用Webbrowser控件装载的某网站的注册页面,其中包括了 ...

  3. 小白教程——Windows下用PHP写一个简单的登录注册页面(二)

    哈喽,看到这里希望小伙伴们都把wampserver环境安装好了,如果还没有安装或创建数据表就移步去看我上一篇文章吧.OK~接下我们将进入代码实现部分,首先我们需要一个文本编辑器,可以是电脑自带的not ...

  4. 前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码

    直接放在<img src="文件名"/> 就可以了,不用去调接口之类的 点击的时候改变验证码图片: 改一下src属性,url?一个随机数(防止缓存) <a hre ...

  5. 百度头条改版了?发一个最新获取百度头条新闻数据

    百度热点新闻改版导致获取失效了,重新写了一版 , 注意是热点榜数据 <?php //获取百度热点榜新闻 header('content-type:application/json'); echo ...

  6. HTML+CSS注册页面案例【Java源代码】

    目录 一.页面展示 二.源代码 一.页面展示 二.源代码 注意:背景图片加载地址改为自己的地址就好!!!其余代码都可以不用改 <!DOCTYPE html> <html lang=& ...

  7. php动态网页验证,用动态网页技术PHP生成验证码图片的源代码

    文件a.php //checkNum.php session_start(); function random($len) { $srcstr="ABCDEFGHIJKLMNOPQRSTUV ...

  8. Html+CSS练习(百度注册页面)--div布局实现

    效果图 代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  9. JAVA实现注册页面验证码刷新

    撰写人--软件二班--陈喜平 需要的工具:tomcat/eclipse/jdk/(注意jdk版本要和tomca相匹配,以及注意区分32位和64位) 步骤:依次创建servlet (服务器需要)/ js ...

最新文章

  1. 计算机动画制作 实验要求,A074计算机动画制作实验——动画制作初步
  2. Linux vi/vim
  3. hexo 修改yelee文章标题字体颜色
  4. 字典超详细--python
  5. [深度学习NPL]word2vector总结与理解
  6. linux查看设备硬件,linux查看硬件信息及驱动设备相关整理
  7. python decorator. decorator_Python 装饰器Decorator(一)
  8. python socket模块 和pyqt_使用PyQt和Socket进行聊天编程[标准库]
  9. 获取Tekla属性方式
  10. App Start Up Step
  11. window下git,TortoiseGit安装,以及和github托管项目
  12. mitmproxy工具使用小红书数据抓取
  13. Excel VBA 学习总结 - 基础知识
  14. GPU硬件加速的原理
  15. IPVS使用的Netfilter Hook点
  16. java中pmt计算_5个财务函数FV、PV、PMT、NPER与
  17. 在ADS仿真或者查看S参数的方法
  18. 为什么这么多学生讨厌数学(以及如何解决它)?
  19. uint8_t图像数据类型介绍
  20. Python strip() 函数 去空格 \n \r \t 函数的用法

热门文章

  1. 裸奔系列之博科SAN交换机(1)---SAN交换机产品介绍
  2. JinJa2-测试器
  3. 1、Chrome之Elements功能面板
  4. 最新 | 2021年平均工资出炉、IT行业高居榜首
  5. Flash MX 2004 编程(AS2.0)教程(十一)
  6. BLDC电机控制算法——FOC简述
  7. 呼叫中心是企业实现全渠道客户服务的刚需
  8. 一头扎进caffeine cache的大坑
  9. linux下 恢复gho镜像,手动使用ghost恢复win7系统gho镜像包教程
  10. firefox(火狐)与IE Chrome浏览器兼容的javascript和CSS写法