C#.Net基于正则表达式抓取百度百家文章列表的方法示例

发布时间 - 2026-01-11 02:56:33    点击率:

本文实例讲述了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><a\\s*.*>(?<Title>[^<]+)</a></h3>.*\\s*<p\\s*class=\"feeds-item-text\">(?<Abstract>[^<]+)<a\\s*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正则表达式在线测试工具:
http://tools./regex/javascript

正则表达式在线生成工具:
http://tools./regex/create_reg

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#正则表达式用法总结》、《C#编码操作技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。


# C#.Net  # 正则  # 抓取  # 百度百家  # 文章  # 浅谈C#.NET、JavaScript和JSON  # C#.NET 图片水印添加代码  # C#.net编程创建Access文件和Excel文件的方法详解  # C#.Net ArrayList的使用方法  # C#.NET实现网页自动登录的方法  # C#.NET采用HTML模板发送电子邮件完整实例  # c#.net 动态读取 走马灯代码实例分享  # c#.NET 写txt文件小例子  # C#.NET字符串比较中忽略符号的方法  # C# .NET 中的缓存实现详情  # 的是  # 正则表达式  # 百家  # 程序设计  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 写了  # 点击此处  # 之余  # 更多关于  # 所述  # 文章列表  # 使用技巧  # 面向对象  # 再为  # 操作技巧  # 测试工具  # 讲述了 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速生成高效建站系统源代码?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何正确下载安装西数主机建站助手?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何用搬瓦工VPS快速搭建个人网站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  想要更高端的建设网站,这些原则一定要坚持!  如何快速打造个性化非模板自助建站?  C语言设计一个闪闪的圣诞树  大连 网站制作,大连天途有线官网?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  香港服务器如何优化才能显著提升网站加载速度?  七夕网站制作视频,七夕大促活动怎么报名?  5种Android数据存储方式汇总  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何在宝塔面板中修改默认建站目录?  手机网站制作与建设方案,手机网站如何建设?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  香港网站服务器数量如何影响SEO优化效果?  如何在IIS管理器中快速创建并配置网站?  BootStrap整体框架之基础布局组件  如何在云虚拟主机上快速搭建个人网站?  中山网站推广排名,中山信息港登录入口?  JS弹性运动实现方法分析  Laravel如何实现用户注册和登录?(Auth脚手架指南)  如何在七牛云存储上搭建网站并设置自定义域名?  jQuery中的100个技巧汇总  如何在Tomcat中配置并部署网站项目?  Laravel Session怎么存储_Laravel Session驱动配置详解  微信小程序 闭包写法详细介绍  如何快速使用云服务器搭建个人网站?  如何在阿里云虚拟服务器快速搭建网站?  Laravel如何实现用户密码重置功能?(完整流程代码)  java中使用zxing批量生成二维码立牌  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  网站建设保证美观性,需要考虑的几点问题!  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  原生JS获取元素集合的子元素宽度实例  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  如何选择可靠的免备案建站服务器?  详解jQuery停止动画——stop()方法的使用