问题描述
已经获得了网页代码,现在正则表达式不知道如何去写,去获取我想要的内容。以下图片表格中为想要获取的内容。URL为http://www.zjzwfw.gov.cn/zjzw/admins/article/articleshow.do?itemId=9630&mainCode=01178&deptId=001003002&category=其他行政权力下面是后台代码publicvoidGetGeneralContent(){stringstrUrl=txtwz.Text.Trim();WebRequestrequest=WebRequest.Create(strUrl);WebResponseresponse=request.GetResponse();StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("gb2312"));//reader.ReadToEnd()表示取得网页的源码MatchCollectionTitleMatchs=Regex.Matches(reader.ReadToEnd(),@"正则表达式",RegexOptions.IgnoreCase|RegexOptions.Multiline);stringmc="";foreach(MatchNextMatchinTitleMatchs){mc+=NextMatch.Groups[1].Value;}//想获取名称(mc)、类别、行政主体、行使层次、实施依据、备注的内容,获取成功后,insert到数据库中。reader.Close();reader.Dispose();response.Close();}protectedvoidbtnSave_Click(objectsender,EventArgse){GetGeneralContent();}刚学习.net,不知道写的对不对,说明白否,希望大家帮帮忙哈。
解决方案
解决方案二:
[TestMethod]publicvoidGetHtmlContent(){stringurl="http://www.zjzwfw.gov.cn/zjzw/admins/article/articleshow.do?itemId=9630&mainCode=01178&deptId=001003002&category=%E5%85%B6%E4%BB%96%E8%A1%8C%E6%94%BF%E6%9D%83%E5%8A%9B";HtmlDocumentdoc=newHtmlDocument();doc.LoadHtml(HttpHelper.Get(url));varmainNode=doc.DocumentNode;WriteText(mainNode,"类别","/html/body/table[3]/tr/td/table[4]/tr/td/table[3]/tr/td/table[1]/tr/td[2]");WriteText(mainNode,"浙江省发展和改革委员会","/html/body/table[3]/tr/td/table[4]/tr/td/table[3]/tr/td/table[2]/tr/td[2]");WriteText(mainNode,"行使层级","/html/body/table[3]/tr/td/table[4]/tr/td/table[3]/tr/td/table[2]/tr/td[4]");WriteText(mainNode,"实施依据","/html/body/table[3]/tr/td/table[4]/tr/td/table[3]/tr/td/table[3]/tr/td[2]/p");WriteText(mainNode,"备注","/html/body/table[3]/tr/td/table[4]/tr/td/table[3]/tr/td/table[4]/tr/td[2]");}publicvoidWriteText(HtmlNodenode,stringname,stringxpath){vartextNode=node.SelectSingleNode(xpath);stringtext=string.Empty;if(textNode!=null){text=StringHelper.FilterHTML(textNode.InnerText).Trim();}Console.WriteLine(name+":"+text);}
使用组件HtmlAgilityPack
解决方案三:
这是xpath的获取方式,chrome会自动为table添加tbody使用的时候可能要去掉tbody。
解决方案四:
zhcnlei:其中HttpHelper和StringHelper,都提示不存在,这个是怎么回事啊,谢谢。
解决方案五:
学习正则表达式吧