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

 更新时间:2017年08月24日 10:48:57   作者:马羊  
这篇文章主要介绍了C#.Net基于正则表达式抓取百度百家文章列表的方法,结合实例形式分析了C#获取百度百家文章内容及使用正则表达式匹配标题、内容、地址等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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.jb51.net/regex/javascript

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

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

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

相关文章

  • c#的sortedlist使用方法

    c#的sortedlist使用方法

    这篇文章主要介绍了c#的sortedlist使用方法,需要的朋友可以参考下
    2014-05-05
  • WinForm项目开发中Excel用法实例解析

    WinForm项目开发中Excel用法实例解析

    这篇文章主要介绍了WinForm项目开发中Excel用法,非常实用,需要的朋友可以参考下
    2014-08-08
  • C#语言主要语言区域

    C#语言主要语言区域

    这篇文章主要介绍了C#语言主要语言区域,C#语言区域主要包括数组、集合和 LINQ、数组等,下面文化在哪个内容围绕这些区域得相关资料了展开详情,需要的小伙伴可以参考一下
    2021-12-12
  • Unity Shader实现模糊效果

    Unity Shader实现模糊效果

    这篇文章主要为大家详细介绍了Unity Shader实现模糊效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C#字典Dictionary的用法说明(注重性能版)

    C#字典Dictionary的用法说明(注重性能版)

    这篇文章主要介绍了C#字典Dictionary的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#删除Word文档中的段落的方法示例

    C#删除Word文档中的段落的方法示例

    在编辑Word文档时,我们有时需要调整段落的布局、删除不必要的段落以优化文档的结构和阅读体验,本文将通过以下3个简单示例演示如何使用免费.NET库删除Word文档中的段落 ,需要的朋友可以参考下
    2024-09-09
  • C#/VB.NET实现将XML转为PDF

    C#/VB.NET实现将XML转为PDF

    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性。本文将利用C#实现XML文件转PDF ,需要的可以参考一下
    2022-03-03
  • c# 闭包的相关知识以及需要注意的地方

    c# 闭包的相关知识以及需要注意的地方

    这篇文章主要介绍了c# 闭包的相关知识以及需要注意的地方,文中讲解非常细致,代码帮助大家理解和学习,感兴趣的朋友可以参考下
    2020-06-06
  • C#操作注册表的方法

    C#操作注册表的方法

    这篇文章介绍了C#操作注册表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C# using三种使用方法

    C# using三种使用方法

    这篇文章主要为大家详细介绍了C# using三种使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论