C#.Net基于正则表达式抓取百度百家文章列表的方法示例
发布时间:2020-12-15 06:00:47 所属栏目:百科 来源:网络整理
导读:本篇章节讲解C#.Net基于正则表达式抓取百度百家文章列表的方法。供大家参考研究具体如下: 工作之余,学习了一下正则表达式,鉴于实践是检验真理的唯一标准,于是便写了一个利用正则表达式抓取百度百家文章的例子,具体过程请看下面源码: 一、获
本篇章节讲解C#.Net基于正则表达式抓取百度百家文章列表的方法。分享给大家供大家参考,具体如下: 工作之余,学习了一下正则表达式,鉴于实践是检验真理的唯一标准,于是便写了一个利用正则表达式抓取百度百家文章的例子,具体过程请看下面源码: 一、获取百度百家网页内容 public List<string[]> GetUrl() { try { string url = "http://baijia.baidu.com/"; WebRequest webRequest = WebRequest.Create(url); WebResponse webResponse = webRequest.GetResponse(); StreamReader reader = new StreamReader(webResponse.GetResponseStream()); string result = reader.ReadToEnd(); reader.Close(); webResponse.Close(); return AnalysisHtml(result); } catch (Exception ex) { throw ex; } } 二、通过正则表达式筛选 public List<string[]> AnalysisHtml(string htmlContent) { List<string[]> list = new List<string[]>(); string strPattern = "<h3><as*.*>(?<Title>[^<]+)</a></h3>.*s*<ps*class="feeds-item-text">(?<Abstract>[^<]+)<as*href="(?<Url>.*)"s*target="_blank"s*class="feeds-item-more"s*mon=".*s*">.*s*</a></p>"; Regex regex = new Regex(strPattern,RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); if (regex.IsMatch(htmlContent)) { MatchCollection matchCollection = regex.Matches(htmlContent); foreach (Match match in matchCollection) { string[] str = new string[3]; str[0] = match.Groups[1].Value;//获取到的是列表数据的标题 str[1] = match.Groups[2].Value;//获取到的是内容 str[2] = match.Groups[3].Value;//获取到的是链接到的地址 list.Add(str); } } return list; } 附:完整实例代码点击此处本站下载。 PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: 正则表达式在线生成工具: 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#正则表达式用法总结》、《C#编码操作技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》 希望本文所述对大家C#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用依赖项测试angularjs指令
- c# – 我应该在部署机器上安装asp.net mvc 2吗?
- 解决Binary XML file line #6: : Error inflating class <
- ajax – Axios拦截器不拦截页面加载
- SSH框架问题——hbm.xml配置出现的org.hibernate.MappingEx
- ruby-on-rails – 使用$sudo bundle exec …引发’bundle:
- WCF Ajax Json的应用
- postgresql – 带有多个PK insertOrUpdate()的Scala的Slick
- ruby-on-rails – 选择预先选择了多个值的标记 – 在数据库
- 无法找到用于XML模式命名空间的Spring NamespaceHandler [h