以前试过将collins字典的mdx格式中的信息,提取为单词数据库,可是以前的文件全部丢失,这次做个记录。
首先用谷歌搜索mdx转换为txt,有个字典转换的工具,下载后转换为txt。
因为后缀格式是txt,但实际内容是xml,但是用于网页显示,所以用beautifulsoup4(bs4)好一点。然后将后缀改为html,便于更好的用bs4处理。
打开仔细分析格式,发现有很多标签,我们想用的就是单词本身、词义的序号、词性、词义、例句。以abandon为例。
在纯文本中并不能很清楚的看到结构,所以我们新建一个文本文档,然后把内容拷贝进去,再改名为.html后缀。接着用chrome浏览器打开文件看看,出现了排版好的单词解释。我们需要看的是结构,页面点击右键,选择【检查】。这时会出现xml的布局。
首先最上层的结构是第一个词是单词本身,然后是星级。这两个都只是使用了font标签,修改了字体。
第二个是四层嵌套的div分区。class分别是tab_content,part_main和part_list,collins_content。前一层包含后一层,并没有其他内容。
在collins_content中,包含有单词所有的词义,有几个词义就有几个class=collins_en_cn的div分区,同时还有一些div style = display的附加性说明。
在所有collins_en_cn中,有两大部分,一部分是单词的词义本身,另一部分是例句。词义本身是一个div分区,并没有class,只是规定了style="display:block;background-color:#f5f7fc;"。例句是无序列表ol。
对于例句ol我们暂时不关注。只关注当前需要的星级,词义序号,词性,中文词义。当然这个词典还没有音标和发音,这个后面再解决。但是给多条例句,一条英文词义,音标和发音都要留下数据库的位置。发音库也要自己找,网上有流传的14200个单词语音库,是来自韦氏字典,总共500多M。音标可以在Collins COBUILD Advanced Dictionary 6th.mdx中找到。现在资源都齐了,就是提取和合并。
继续回到第一个collins_en_cn的词义div,其中分为多个span,第一个是序号,第二个是词性,第三个是中文解释。英文解释暂时不管。
<span style="color:#666666;font-weight:bold;font-size:95%;">1.</span>
<span style="color:#666666;font-weight:bold;font-size:95%;" tid="1_27">VERB 动词</span>
<span style="color:#0077cf"> 离弃;遗弃;抛弃</span>
现在我们关注的元素,都已经分析清楚了,下一步就是coding.