IdHTTP + RegExpr
来源:互联网 发布:oracle查询字符集sql 编辑:程序博客网 时间:2024/06/04 19:52
关键词:IdHTTP ,RegExpr,正则表达式,链接
目的:取得Web页面中的链接及链接文字。
操作:
1.使用IdHTTP获取网页的源码。
2.使用RegExpr定义正则表达式,获取网页中的链接及链接文字。
实现方法如下:
//使用正则表达式,匹配网页源码,抽取内容。
procedure GetLinkFromHtml(Const SourceHtmlTxt,Pattern:String; var aList:TStringList);
var RegExp : TRegExpr;
HasMatch:Boolean;
begin
RegExp := TRegExpr.Create;
try
RegExp.Expression := Pattern; //范式
HasMatch:=RegExp.Exec(SourceHtmlTxt);
while HasMatch do
begin
//aList.Add(RegExp.Match[0]);
aList.Add(RegExp.Match[2]+'='+RegExp.Match[1]);
HasMatch := RegExp.ExecNext;
end;
finally
FreeAndNil(RegExp);
end;
end;
//解析网页源码内容,用正则表达式读取所需链接。
procedure ParsePageContent(pageText:String; var aList:TStringList);
var aPattern:String;
begin
//正则表达式
//链接形如:<A href="http://ex01/public/abcdf.doc?attach=1" TARGET="_blank" ><FONT color="#000000">附件1.doc(37KB)</FONT></A>
aPattern:= '<A/s+href/s*=/s*""{0}([^>].*?)/?attach=1""{0}/s*TARGET/s*=/s*""{0}_blank""{0}/s*>/s*<FONT/s+color/s*=/s*""{0}#000000""{0}>(.*?)/(([/d]+)KB/)/s*</FONT>/s*</A>';
GetLinkFromHtml(pageText,aPattern,aList); //使用正则表达式,匹配网页内容。
end;
//读取网页源码,从网页中得到文件的链接地址以及文件名称等内容。
//返回参数:HrefList。
procedure GetLinkList(EFileLink,Domain,UserName,PassWD:string; var HrefList:TStringList);
var aIdHTTP:TIdHTTP;
WebHTTPContent:String;
begin
aIdHTTP:=TIdHTTP.Create(nil);
try
aIdHTTP.Request.BasicAuthentication:=True; //设置权限
aIdHTTP.Request.Username:=Domain+'/'+UserName;
aIdHTTP.Request.Password:=PassWD;
//识别浏览器
aIdHTTP.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)';
aIdHTTP.Request.Accept:='image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*';
aIdHTTP.Request.ContentType:='text/xml; charset=''UTF-8''';
aIdHTTP.Request.Connection:='Keep-Alive';
aIdHTTP.Request.Method:=(hmGet);//设置Request的方法
//得到网页的内容(以OWA方式可打开)
//EFileLink:='http://ex01/public/工作流程/关于调整设备类型的通知.EML';
WebHTTPContent:=aIdHTTP.Get(EFileLink);
//UTF8解码
WebHTTPContent:=Utf8Decode(WebHTTPContent);
//解析网页源码
ParsePageContent(WebHTTPContent, HrefList);
finally
FreeAndNil(aIdHTTP);
end;
end;
By JRQ
2007.05.28于石
- IdHTTP + RegExpr
- idhttp
- REGEXPR正则表达式
- IdHTTP组件
- IdHttp 资料
- idhttp webbrowser
- idhttp post
- Idhttp ,cookie相关
- IDHttp的基本用法
- delphi idhttp使用
- idhttp使用例子
- 用idhttp提交cookie
- delphi idhttp post应用
- delphi idhttp 使用方法
- delphi idHttp下载文件
- Delphi IDhttp 获取Cookie
- delphi idHttp下载文件
- Idhttp.post 登陆网站
- ASP.NET中实现二级或多级域名(修改UrlRewrite)
- Java编程思想--隐藏类的实现
- birt导出csv乱码问题解决
- 简简单单long
- 深入介绍Linux内核(二)
- IdHTTP + RegExpr
- 常用排序算法
- 解决winxp网上邻居共享问题的方法有
- 教你如何分析未文档化的数据结构(http://www.x86asm.com)
- 常见的 windows 系统进程说明
- 无法正常显示隐藏文件
- 不安装ASPAJAXExtSetup.msi开发和发布ajax网站
- datagrid数据导出到excel文件给客户端下载的几种方法
- 开通了、开通了