一个没有积分的问题。简单的。用中文告诉我就可以了。谢谢各位!(0)

  • 主题发起人 主题发起人 chenzhong
  • 开始时间 开始时间
C

chenzhong

Unregistered / Unconfirmed
GUEST, unregistred user!
[8D][8D][8D]没积分。有人帮就简单说下吧,用中文就行。不要给代码,看代码比看中文还困难。哈哈。 问题就是 如何从网页源文件中提取链接。 源文件已经下载到变量里了,memo1里了。 找不到合适的方法。不同的网站链接格式不一样。
 
webbrowser 可以以obj形式获得
 
对<a></a>标签中的内容进行处理就可以了
 
用正则表达式处理href=""里的内容即可
 
对<a></a>标签中的内容进行处理就可以了 这个方式不好处理的,无规则。有的时候只有半边<a用正则表达式处理href=""里的内容即可 这个也不好处理的,无规则。有的只有href= 没有""webbrowser 可以以obj形式获得 未知。这个我还不知道,现在去查查
 
看来你还并不了解正则表达式,你先了解一下正则表达式吧,那不是一般的强大,绝对可以达到你的要求的。var LoadHttp,Matches, MyRegExp: OleVariant;
NewHttpText, HttpText: string;
i: integer;
begin
//读取目标网站信息 LoadHttp:=CreateOleObject('MSXML2.XMLHTTP');
LoadHttp.open('GET','http://www.taomail.com.cn/',false);
LoadHttp.send;
HttpText := LoadHttp.responseText;
//将读取的信息进行分析处理 MyRegExp := CreateOleObject('VBScript.RegExp');
MyRegExp.Global := True;
MyRegExp.IgnoreCase := False;
MyRegExp.Pattern := '(href[.''"//s/w]{0,}=[''"]{0,})([.//w:?/=/%/&/#/-]{0,})';//正则表达式规则请参考相关文档 Matches := MyRegExp.Execute(HttpText);
//显示找到的结果 if MyRegExp.Test(HttpText) then
begin
ShowMessage('找到了联接');
for i := 1 to Matches.Count-50do
begin
ShowMessage(Format('找到的第%d个:%s', [i,Matches.item[i - 1].SubMatches[1]] ));
end;
end else
ShowMessage('没有找到');
end;
以上代码需引用ComObj单元
 
解决了。用pos函数弄的。谢谢各位。
 
后退
顶部