码迷,mamicode.com
首页 > Web开发 > 详细

IXMLHTTPRequest获取网页源码的心得

时间:2015-02-22 08:52:17      阅读:502      评论:0      收藏:0      [点我收藏+]

标签:

在万一老师的博客看到一种利用IXMLHTTPRequest来获取网页源码的方法,但有2个问题没解决,自己研究了下改进了方法。

1.如果网页进行301转跳将无法获取源码

2.如果网站是gb2312编码将获取的是乱码

/////以下方法使用的是Delphi xe2编写

uses MsXML,activex;

function GETHTML (const URL : string):string; // XMLHTTP接口
Var
XMLHTTP:IServerXMLHTTPRequest;
HTML:TBytes;
begin
try
CoInitializeEx(nil,COINIT_MULTITHREADED);
XMLHTTP:=CoServerXMLHTTP.Create;         //使用CoServerXMLHTTP则能进行301转跳,CoXMLHTTP不能转跳
XMLHTTP.open(‘GET‘,URL,False,EmptyParam,EmptyParam);
XMLHTTP.send(EmptyParam);

HTML:=XMLHTTP.responseBody;

//判断网页是否携带utf-8,没携带进行转换
if Pos(‘utf-8‘,StringOf(HTML)) > 0 then begin
Result:=TEncoding.Default.GetEncoding(65001).GetString(HTML);//把UTF8转STRING
Exit;
end;
Result:=TEncoding.Default.GetString(HTML);
finally
CoUnInitialize; // 释放内存
end;
end;

IXMLHTTPRequest获取网页源码的心得

标签:

原文地址:http://www.cnblogs.com/sishen/p/4297303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!