在lucene.net代码包里有个。lucene.net-1.9.RC1-000-26May05.src/Lucene.Net-1.9.rc1/Demo/DemoLib此包是用来解析html文档,获取html文章中的title meta等。如果使用改api DemoLib.ll此api 有2个名字空间namespace Lucene.Net.Demonamespace Lucene.Net.Demo.Html我们要使用到该名字下 class HTMLParser比如我们要解析c:/test.htm 我们可以用如下的方法,protected void htmlpser(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 System.IO.FileInfo myfileinfo=new System.IO.FileInfo(@"c:/test.htm"); HTMLParser htmlp=new HTMLParser(myfileinfo); string outstr; outstr=htmlp.GetTitle()+"<br>"; outstr=outstr+htmlp.GetSummary()+"<br>"; Label1.Text=outstr; }
原包只支持本地路径下的文件,不支持url返回的html
下面我们具体做下如何获取一个url返回的htmlHTMLParser()其中可支持public HTMLParser(System.IO.FileInfo file) : public HTMLParser(System.IO.Stream) : 我们可以把url返回的html封装到stream中 请看下面提供的方法。protected void htmlpser(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 string PageUrl =purl.Text; WebRequest request = WebRequest.Create(PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); //System.IO.FileInfo myfileinfo=new System.IO.FileInfo(@"c:/test.htm"); HTMLParser htmlp=new HTMLParser(sr); string outstr; outstr=htmlp.GetTitle()+"<br>"; outstr=outstr+htmlp.GetSummary()+"<br>"; Label1.Text=outstr; //Response.Write(htmlp.GetMetaTags().Count); }