Delphi实现网页采集

上传人:飞*** 文档编号:32965428 上传时间:2018-02-13 格式:DOC 页数:4 大小:33KB
返回 下载 相关 举报
Delphi实现网页采集_第1页
第1页 / 共4页
Delphi实现网页采集_第2页
第2页 / 共4页
Delphi实现网页采集_第3页
第3页 / 共4页
Delphi实现网页采集_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Delphi实现网页采集》由会员分享,可在线阅读,更多相关《Delphi实现网页采集(4页珍藏版)》请在金锄头文库上搜索。

1、说到网页采集,通常大家以为到网上偷数据,然后把到收集到的数据挂到自己网上去。其实也可以将采集到的数据做为公司的参考,或把收集的数据跟自己公司的业务做对比等。目前网页采集多为 3P 代码为多(3P 即 ASP、PHP 、JSP)。用得最有代表的就动易科技公司 BBS 中新闻采集系统,和网上流传的新浪新闻采集系统等都是用 ASP 程序来使用,但速度从理论上来说不是很好。如果尝试用其它软件的多线程采集是不是更快?答案是肯定的。用 DELPHI、VC、VB、JB 都可以,PB 似乎比较不好做。以下用 DELPHI来解释采集网页数据。一、 简单的新闻采集新闻采集是最简单的,只要识别标题、副题、作者、出处

2、、日期、新闻主体、分页就可以了。在采集之前肯定要取得网页的内容,所以在 DELPHI 里加入 idHTTP 控件(在 indy Clients 面板),然后用 idHTTP1.GET 方法取得网页的内容,声明如下:function Get(AURL: string): string; overload;AURL 参数,是 string 类型,指定一个 URL 地址字符串。函数返回也是 string 类型,返回网页的 HTML 源文件。比如我们可以这样调用:tmpStr:= idHTTP1.Get(http:/);调用成功后,tmpstr 变量里存储的就是网易主页的代码了。接下来,讲一下数据的截

3、取,这里,我定义了这么一个函数:function TForm1.GetStr(StrSource,StrBegin,StrEnd:string):string;varin_star,in_end:integer;beginin_star:=AnsiPos(strbegin,strsource)+length(strbegin);in_end:=AnsiPos(strend,strsource);result:=copy(strsource,in_sta,in_end-in_star);end;StrSource:string 类型,表示 HTML 源文件。StrBegin:string 类型,

4、表示截取开始的标记。StrEnd:string,表示截取结束的标记。函数返回字符串 StrSource 中从 StrSource 到 StrBegin 之间的一段文本。比如:strtmp:=TForm1.GetStr(A123BCD,A,BC);运行后,strtmp 的值为: 123。关于函数里用到的 AnsiPos 和 copy,都是系统定义的,可以从 delphi 的帮助文件里找到相关说明,我在这里也简单罗嗦一下:function AnsiPos(const Substr, S: string): Integer返回 Substr 在 S 中第一次出现的位置。function copy(s

5、trsource,in_sta,in_end-in_star): string;返回字符串 strsource 中, 从 in_sta(整型数据)开始到 in_end-in_star(整型数据)结束的字符串。有了以上函数,我们就可以通过设置各种标记,来截取想要的文章内容了。在程序中,比较麻烦的是我们需要设置许多标记,要定位某一项内容,必须设置它的开始和结束标志。比如要取得网页上的文章标题,必须事先查看网页代码,查看出文章标题前边和后边的一些特征代码,通过这些特征代码,来截取文章的标题。下面我们来实际演示一下,假设要采集的文章地址为 http:/ 1文章标题作者出处这里是文章内容正文。 上一页

6、下一页第一步,我们用 StrSource:= idHTTP1.Get(http:/ );将网页代码保存在 strsource 变量中。然后定义 strTitle、strAuthor、strCopyFrom、strContent:strTitle:= GetStr(StrSource, , ):strAuthor:= GetStr(StrSource, , ):strCopyFrom:= GetStr(StrSource, , ):strContent:= GetStr(StrSource, , ):这样,就能把文章的标题、副题、作者、出处、日期、内容和分页分别存储在以上变量中。第二步,用循环的办法,打开下一页,并取得内容,加到 strContent 变量中。StrSource:= idHTTP1.Get(new_ne.asp);strContent:= strContent +GetStr(StrSource, , ):然后再判断有没有下一页,如果还有就接着取得下一页的内容。这样就完成了一个简单的截取过程。从以上的程序代码可以看到,我们使用的截取办法都是找截取内容的头部和尾部的,如果遇到这个头部和尾部有多个怎么办?似乎没办法,只会找到第一个,所以在找之前应该验证一下是不是只有一处有这个截取的内容的前后部。以上内容没有程序验证,仅供参考,如果认为有用可以试试。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号