从页面中取出e-mail地址和相对链接及绝对链接的代码...

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

private string FetchPage(String url) //取页面指定URL页面的源码

{

String page = "null";

try

{

WebClient mywc = new WebClient();

using(Stream strm = mywc.OpenRead(url))

{

StreamReader sr = new StreamReader(strm);

page = sr.ReadToEnd();

strm.Close();

}

}

catch{}

return page;

}

public string GetLink(String url) //绝对链接的

{

String content = this.FetchPage(url);

//Regex linkRegex=new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+)", RegexOptions.IgnoreCase);

//@"^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$";

Regex link=new Regex(@"+/.)+[/w-]+(/[/w-./?%&=]*)?]http://([w-]+.)+[w-]+(/[w-./?%&=]*)?",RegexOptions.IgnoreCase);

StringBuilder sb = new StringBuilder();

MatchCollection emailmatchs = link.Matches(content);

foreach(Match n in emailmatchs)

{

sb.Append(n.ToString());

sb.Append(";");

}

if( sb.Length == 0 )

{

sb.Append("null");

}

return sb.ToString();

}

public string GetEmailAddr(String url) //相对链接的

{

String content = this.FetchPage(url);

//Regex linkRegex=new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+)", RegexOptions.IgnoreCase);

//@"^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$";

Regex r=new Regex(@"\w+((-\w+)|(\.\w))*\@\w+((\.|-)\w+)*\.\w+[com|cn|com.cn|net|org|cc|uk]{1,6}",RegexOptions.IgnoreCase);

StringBuilder sb = new StringBuilder();

MatchCollection emailmatchs = r.Matches(content);

foreach(Match n in emailmatchs)

{

sb.Append(n.ToString());

sb.Append(";");

}

if( sb.Length == 0 )

sb.Append("null");

return sb.ToString();

}

其中的部分代码要感我的朋友樊帆.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航