一个成功获取百度注册页面验证码图片的源代码
成功实现使用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
一个成功获取百度注册页面验证码图片的源代码相关推荐
- 用layui做一个简易的登录注册页面
用layui做一个简易的登录注册页面 1.首先在主页绑定一个点击事件,点击登录按钮就可以弹出一个弹出窗,一般商场登录页面不会跳转一个新页面,因为如果进入一个新页面,登录后需要跳转会原来的页面,这样会导 ...
- C#获取网页中的验证码图片(转载)
有时候我们需要获得网页上的图片,尤其是向验证码这样的图片.这个方法就是将网页上的图片获取到PictureBox中.效果入下图所示. 右边是使用Webbrowser控件装载的某网站的注册页面,其中包括了 ...
- 小白教程——Windows下用PHP写一个简单的登录注册页面(二)
哈喽,看到这里希望小伙伴们都把wampserver环境安装好了,如果还没有安装或创建数据表就移步去看我上一篇文章吧.OK~接下我们将进入代码实现部分,首先我们需要一个文本编辑器,可以是电脑自带的not ...
- 前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码
直接放在<img src="文件名"/> 就可以了,不用去调接口之类的 点击的时候改变验证码图片: 改一下src属性,url?一个随机数(防止缓存) <a hre ...
- 百度头条改版了?发一个最新获取百度头条新闻数据
百度热点新闻改版导致获取失效了,重新写了一版 , 注意是热点榜数据 <?php //获取百度热点榜新闻 header('content-type:application/json'); echo ...
- HTML+CSS注册页面案例【Java源代码】
目录 一.页面展示 二.源代码 一.页面展示 二.源代码 注意:背景图片加载地址改为自己的地址就好!!!其余代码都可以不用改 <!DOCTYPE html> <html lang=& ...
- php动态网页验证,用动态网页技术PHP生成验证码图片的源代码
文件a.php //checkNum.php session_start(); function random($len) { $srcstr="ABCDEFGHIJKLMNOPQRSTUV ...
- Html+CSS练习(百度注册页面)--div布局实现
效果图 代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...
- JAVA实现注册页面验证码刷新
撰写人--软件二班--陈喜平 需要的工具:tomcat/eclipse/jdk/(注意jdk版本要和tomca相匹配,以及注意区分32位和64位) 步骤:依次创建servlet (服务器需要)/ js ...
最新文章
- 计算机动画制作 实验要求,A074计算机动画制作实验——动画制作初步
- Linux vi/vim
- hexo 修改yelee文章标题字体颜色
- 字典超详细--python
- [深度学习NPL]word2vector总结与理解
- linux查看设备硬件,linux查看硬件信息及驱动设备相关整理
- python decorator. decorator_Python 装饰器Decorator(一)
- python socket模块 和pyqt_使用PyQt和Socket进行聊天编程[标准库]
- 获取Tekla属性方式
- App Start Up Step
- window下git,TortoiseGit安装,以及和github托管项目
- mitmproxy工具使用小红书数据抓取
- Excel VBA 学习总结 - 基础知识
- GPU硬件加速的原理
- IPVS使用的Netfilter Hook点
- java中pmt计算_5个财务函数FV、PV、PMT、NPER与
- 在ADS仿真或者查看S参数的方法
- 为什么这么多学生讨厌数学(以及如何解决它)?
- uint8_t图像数据类型介绍
- Python strip() 函数 去空格 \n \r \t 函数的用法
热门文章
- 裸奔系列之博科SAN交换机(1)---SAN交换机产品介绍
- JinJa2-测试器
- 1、Chrome之Elements功能面板
- 最新 | 2021年平均工资出炉、IT行业高居榜首
- Flash MX 2004 编程(AS2.0)教程(十一)
- BLDC电机控制算法——FOC简述
- 呼叫中心是企业实现全渠道客户服务的刚需
- 一头扎进caffeine cache的大坑
- linux下 恢复gho镜像,手动使用ghost恢复win7系统gho镜像包教程
- firefox(火狐)与IE Chrome浏览器兼容的javascript和CSS写法