资源描述:
《net抓取和分析网页的类》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、主要功能有:1、提取网页的纯文本,去所有html标签和javascript代码2、提取网页的链接,包括href和frame及iframe3、提取网页的title等(其它的标签可依此类推,正则是一样的)#region私有成员privateUrim_uri;//网址privateListm_links;privatestringm_title;privatestringmhtml;privatestringm_outstr;privateboolm_good;privateintinpages
2、ize;privatestaticDictionary()4、可以实现简单的表单提交及cookie保存第一部分usingSystem;usingSystem.Data;usingSystentConfiguration;usingSystem・Net;usingSystem.10;usingSystem.Text;usingSystem.Collections.Generic;usingSystentText.Re
3、gularExpressions;usingSystem・Threading;usingSystem.Web;//////网页类///〈/summary〉publicclassWebPage//此网页上的链接//此网页的标题//此网页的HTML代码//此网页可输出的纯文本〃此网页是否可用//此网页的大小CookieContainor>wobcookies二n//存放所有网页的Cookieprivatestringm_post;〃此网页的登陆页需要的POST数据privatestrin
4、gm_loginurl;〃此网页的登陆页#ondregion#region私有方法//////这私有方法从网页的HTML代码中分析出链接信息//////ListprivateListgetLinks(){if(m_links.Count==0){Regex[]regex=newRegex[2];regex[0]=newRegexC(?m)(「>"'
5、\s)])+)("I')?「>]*>(?(\w
6、\W)*?)",RegexOptions.MultilineRegexOptions.TgnoreCase);regextl]=newRegex("〈[i]*frame「>〈]+src=("
7、')?(?(「>、〃'\s)])+)("
8、')?「>]*>",RegexOptions.Multiline
9、RegexOptions.IgnoreCase);for(inti=0;i<2;i++){Matchmatch二reg
10、ex[i].Match(m_html);while(match.Success){try{stringurl=newUri(m_uri,match・GroupsValue).Absolutellri;stringtext=if(i==0)text=newRegex("(<「>]+>)
11、(\s)
12、( )
13、RegexOptions.Multiline
14、RegexOptions.TgnoreCase)・Replace(match.Groups["text"]•Value,"“);Linklink
15、=newLink(url,text);mlinks.Add(link);}catch(Exceptionex){Console.WriteLine(ex.Message);};match=match・NextMatch();returnmlinks;//////此私有方法从一段HTML文本中提取出一定字数的纯文本///〈/summary〉///HTML代码///提取从头数多少个字<
16、/param>///是否要链接里面的字///纯文木privatestringgetFirstNchar(stringinstr,intfirstN,boolwithLink){if(moutstr=="”){m_outstr=instr・Clone()asstring;moutstr=newRegex(@,z(?m)