lucene.net 中htmlparser 的使用

来源:互联网 发布:网络管理软件下载 编辑:程序博客网 时间:2024/05/17 23:31

在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.Demo
namespace 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返回的html
HTMLParser()其中可支持
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);
  }