第3章:正则表达式 (English Resource)
文件enwiki-country.json.gz以下列方式存储Wikipedia的文章:
- 整体为一个JSON文件,每行存储一篇文章;
- 每行以JSON形式记录一个字典(dictionary)对象,包含如下键值对(key-value pairs):
- 以
title
为键(key),对应{每篇文章的标题}
为值(value); - 以
text
为键(key),对应{每篇文章的内容}
为值(value)。
- 以
- 使用gzip进行压缩。
编写程序以完成下列处理。
20. 读取JSON文档Permalink
读取该包含Wikipedia文章的JSON文件,输出标题为”United Kingdom”的文章内容。基于本题的输出结果,完成第21至29问。
21. 提取含有类别名称的行Permalink
提取文章中定义类别(Category)的相关行。
22. 提取类别名称Permalink
从定义类别的相关行中,进一步提取所有类别的名称。
23. 小节结构Permalink
提取文章中各个小节的名称及其所处的层级。在MediaWiki中,如果小节Section
在原文中以==Section==
的形式记录,则Section
处于第1层级,依此类推。
24. 提取引用的多媒体Permalink
提取文章中所有被引用的多媒体文件。
25. 抽取Infobox信息Permalink
提取Infobox country
中所有的字段名与其对应值,并将其存储为一个字典(dictionary)对象。
26. 删除强调标记Permalink
在第25问的基础之上,从值项中删除MediaWiki的强调标记(斜体字,粗体字,粗体加斜体,参考:备忘单)。
27. 删除内部链接标记Permalink
在第26问的基础之上,从值项中删除MediaWiki的内部链接标记,并将链接内容转换为文本(参考:备忘单)。
28. 删除MediaWiki标记Permalink
在第27问的基础之上,尽可能删去其它MediaWiki标记,以获取纯文本格式的国家基本信息。
29. 取得国旗图像的URLPermalink
利用Infobox的内容,获取国旗图像的URL(提示:可以调用MediaWiki API中的imageinfo,来将文件引用信息转换为对应的URL)。