用C#2.0实现网络蜘蛛(WebSpider)
2009-05-29 08:31:25 来源:WEB开发网情况2: comprg
情况3: comprg
getHref方法中的p存储了用于过滤这三种情况的href,也就是说,使用正则表达式可以获得上述三种情况的href如下:
从情况1获得得的href:href = "http://www.comprg.com.cn"
从情况2获得得的href:href = 'http://www.comprg.com.cn'
从情况3获得得的href:href = http://www.comprg.com.cn
在获得上述的href后,需要将url提出来。这个功能由getUrl完成,这个方法的实现代码如下:
getUrl方法的实现
// 从href中提取url
private String getUrl(string href)
{
try
{
if (href == null) return href;
int n = href.IndexOf('='); // 查找'='位置
String s = href.Substring(n + 1);
int begin = 0, end = 0;
string sign = "";
if (s.Contains("\"")) // 第一种情况
sign = "\"";
else if (s.Contains("'")) // 第二种情况
sign = "'";
else // 第三种情况
return getFullUrl(s.Trim());
begin = s.IndexOf(sign);
end = s.LastIndexOf(sign);
return getFullUrl(s.Substring(begin + 1, end - begin - 1).Trim());
}
catch (Exception e)
{
throw e;
}
}
更多精彩
赞助商链接