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如何创建自定义Facades?(详细步骤)  lovemo网页版地址 lovemo官网手机登录  奇安信“盘古石”团队突破 iOS 26.1 提权  如何快速打造个性化非模板自助建站?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  文字头像制作网站推荐软件,醒图能自动配文字吗?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel如何使用Blade模板引擎?(完整语法和示例)  javascript读取文本节点方法小结  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  百度浏览器如何管理插件 百度浏览器插件管理方法  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何在腾讯云服务器快速搭建个人网站?  如何用y主机助手快速搭建网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  JS中对数组元素进行增删改移的方法总结  Python3.6正式版新特性预览  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  历史网站制作软件,华为如何找回被删除的网站?  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何在云主机上快速搭建多站点网站?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel如何优化应用性能?(缓存和优化命令)  Python文件流缓冲机制_IO性能解析【教程】  浅析上传头像示例及其注意事项  电商网站制作价格怎么算,网上拍卖流程以及规则?  浅谈javascript alert和confirm的美化  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  java ZXing生成二维码及条码实例分享  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?