首页 > 编程语言 >使用C#/.NET解析Wiki百科数据实现获取历史上的今天

使用C#/.NET解析Wiki百科数据实现获取历史上的今天

时间:2024-07-17 17:51:33浏览次数:10  
标签:Wiki C# 数据 获取 内容 即可 NET 解析 正则表达式

创建一个webapi项目做测试使用。 0   创建新控制器,搭建一个基础框架,包括获取当天日期、wiki的请求地址等 0 创建一个Http请求帮助类以及方法,用于获取指定URL的信息 0   使用http请求访问指定url,先运行一下,看看返回的内容。内容如图右边所示,实际上是一个Json数据。我们主要解析 大事记 部分的内容,位于Json的revisions字段内 0 定义有关实体类,用于把收到的json数据转换为对象 0 根据转换的对象,可以看到对象内所有需要的内容,都在Content字段里面了。由于不知道是否存在多层结构,所以此处使用循环来遍历内容。先搭建个模子。 0   编写一个正则表达式,根据规律,可以识别出,每个词条都是以[]的形式存在,并且存在嵌套内容,所以做一个数据清理,清理嵌套抽重复的数据。 0 解析出来的新文本,看起来内容舒服一点了。然后我们只需要获取[[xx年]]的这些词行数据,所以可以继续做个数据清理,匹配正则表达式 0   根据匹配的正则表达式内容,做个遍历输出 0 查看输出的内容,可以看到已经被过滤成功了: 0 不过默认是繁体字,咱们再完善下,做成简体字。先安装一个古老的包:ChineseConverter 有提示不用管,能用。 0 然后直接调用即可: string simplifiedText = ChineseConverter.Convert(繁体中文字符串, ChineseConversionDirection.TraditionalToSimplified); 然后重新跑一下,可以看到繁体变成了简体了。 0 最后,剩下的一些括号等符号,或者特殊字符,只需要做一个全局替换即可。以及如果需要解析其他内容,也可以自行再开发一个对应的正则表达式即可。   如需以上源码,可在个人公众号【Dotnet Dancer】后台回复“历史上的今天” 即可获取以上源码。   

标签:Wiki,C#,数据,获取,内容,即可,NET,解析,正则表达式
From: https://www.cnblogs.com/weskynet/p/18307989

相关文章

  • 比对两个excel文件数据差异
    背景工作中需要一个测试需求:需要比对两个excel文件的内容,以门店编码为唯一键,比对其他字段值不一致的地方,如有不一致需要写入另外一个文件解决方案使用python代码实现#-*-coding:utf-8-*-"""@File:数据核对脚本.py@Author:simon@email:[email protected]......
  • 【Python】CSS与选择器
        ......
  • 宝塔面板申请 Let's Encrypt证书报错:Invalid version. The only valid version for X5
    原因是由于服务器端使用了不兼容的OpenSSL版本导致的,服务器端的X509Req版本只支持0,而宝塔这边默认的版本为2。第一种1、修改/www/server/panel/class下面的acme_v2.py文件搜索找到X509Req.set_version(2)代码段,将其改为X509Req.set_version(0)2、重启宝塔面板服......
  • 针尖对麦芒!Anthropic 推出 Claude Android 可实时翻译!
    Anthropic,作为OpenAI的强劲对手,于本周二正式推出了专为Android用户设计的Claude应用程序,旨在通过拓宽Claude的接入平台,吸引用户从ChatGPT转向其服务。这款Android应用承袭了五月问世的iOS版本的设计理念,用户无需支付任何费用即可体验到Anthropic顶尖AI模型——Claude3.5Sonnet的......
  • CDQ分治
    该分治算法由CDQ提出,主要用于解决三维偏序问题。下面的内容就三维偏序例题来讲。题目给你一个序列,每个元素有\(a,b,c\)三个属性,问满足\(a_i>a_j,b_i>b_j,c_i>c_j\)的数对\(i,j\)的数量。分析将原序列按照\(a\)值排序,将其变为下标。CDQ分治的主要步骤是对于一个需要......
  • cerebro 报错: Oops, cannot start the server. com.google.common.util.concurrent.Un
    @目录前言环境异常修改方案第二次报错修改方式成功前言使用elasticsearch+springboot实现新闻搜索功能:https://javapub.net.cn/star/project/news-search-es/遇到的错误记录。环境cerebro下载地址:https://github.com/lmenezes/cerebro使用了最新的版本:cerebro-0......
  • asp.net 动态加载与卸载程序集的尝试(没有成功)欢迎解决的朋友留言告知
    参考 C#.Net如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集-龙骑科技-博客园(cnblogs.com)大概意思是微软的.NET运行不支持直接卸载应用程序集,因为一旦加载程序集,即使是动态加载就会给该程序集加载到当前正在运行的主线程上,如果想......
  • LongAdder 比 AtomicLong 性能更好
    一、LongAdder入门API文档地址:https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html构造方法:初始值为0LongAdder()方法:add(longx)decrement()//减1increment()//加1toString()二、LongAdder于AtomicLong性能比较通过案例比......
  • 2024年华为OD机试真题-图像物体的边界-C++-OD统一考试(C卷D卷)
     2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集)题目描述:给定一个二维数组M行N列,二维数组里的数字代表图片的像素,为了简化问题,仅包含像素1和5两种像素,每种像素代表一个物体,2个物体相邻的格子为边界,求像素1代表的物体的边界个数。像素1代表的......
  • Visual Studio 2022下载安装教程c++
    文章目录VisualStudio安装教程一、官网下载二、安装三、配置四、VisualStudio2022使用教程VisualStudio安装教程一、官网下载下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/二、安装要是个人学习的活就下载社区版下载完成后是一个安......