我用webbrowser取到了一个页面所有的超级链接.但是取到的一个页面的超级连接有部分是其他站的,比如我取http://www.hao123.com 这个页面的所有连接取到的还有:hi.baidu.com …我现在想过滤掉其他站的连接 , 只取hao123的所有的连接,包括二级域名.这个问题想了很久,希望智商高的帮我一把.我想每次获取一个连接的时候 PING他的IP,是否和hao123的IP一样,如果一样才取.但是貌似速度非常非常的慢.
调试欢乐多
比如你要 http://www.hao123.com 这个页面的所有连接
那么域就是hao123.com,基本的字符串查找就可以了。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
implementation{$R *.dfm}
uses StrUtils;procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to webbrowser1.oleobject.document.links.length-1 do
if AnsiContainsText(webbrowser1.oleobject.document.links.item(i).href,'hao123.com') then
memo1.Lines.Add(webbrowser1.oleobject.document.links.item(i).href);
end;procedure TForm1.FormDblClick(Sender: TObject);
begin
Webbrowser1.Navigate('http://www.hao123.com');
end;end.
如果上面的代码还不够精确,你可以修改成这句:
if AnsiContainsText(webbrowser1.oleobject.document.links.item(i).href,'www.hao123.com') then