CamDict剑桥英语字典python实现

2021-03-16  本文已影响0人  小肥爬爬

CamDict

剑桥英语字典的抓取程序, 用 python3 实现, 命令行直接可跑.
工程: https://gitee.com/xiaofeipapa/cam-dict

剑桥英语字典介绍

剑桥英语字典是我很喜欢的一个网上字典, 它能够返回英文注释和中文注释, 还有一系列例句. 想查找地道的单词翻译, 用它准没错.

网址: https://dictionary.cambridge.org/dictionary/english-chinese-simplified/record?q=recorded

格式重整

由于剑桥英语返回的信息太过丰富, 一番折腾之后, 我重整了单词的结构, 画图如下:

image.png
  1. 每个单词有多个pos (part of speech 词性). 例如 record 有动词形式, 名词形式. 两种词性的读音和翻译/例句都不同.
  2. 每个pos 包括音标, 读音, 其中读音有英音和美音.
  3. pos 下有多个 tran(translation, 解释). 解释有中文和英文.
  4. 每个tran 有多个例句, 例句有中文/英文.

用json 表达如下:

{
    'word': 'record',
    'pos_list': [{
        'pronUk': '/rɪˈkɔːd/',
        'pronUkUrl': 'https://dictionary.cambridge.org/media/english-chinese-simplified/uk_pron/u/ukr/ukrec/ukrecor002.mp3',
        'pronUs': '/rɪˈkɔːrd/',
        'pronUsUrl': 'https://dictionary.cambridge.org/media/english-chinese-simplified/us_pron/r/rec/recor/record_01_00.mp3',
        'pos': 'verb',
        'trans': [{
            'en': 'to store sounds or moving pictures using electronic equipment so that they can be heard or seen later',
            'ch': '录制;录(音);录(像)',
            'samples': [{
                'en': 'Cliff Richard has recorded more number one hit songs than any other British pop star.',
                'ch': '在英国流行乐歌星中,克利夫.理查德录制的歌曲荣登排行榜榜首的数量最多。'
            }, {
                'en': 'We recorded their wedding on video.',
                'ch': '我们给他们的婚礼录了像。'
            }, {
                'en': 'I tried to call her, but all I got was a recorded message saying that she was away for the weekend.',
                'ch': '我每次给她打电话听到的都是电话答录机中说她外出度周末的录音。'
            }, {
                'en': 'Was the concert live or was it recorded (= made before being broadcast)?',
                'ch': '音乐会是直播还是录播的?'
            }]
        }, {
            'en': 'to keep information for the future, by writing it down or storing it on a computer',
            'ch': '记录;记载;记下…备案',
            'samples': [{
                'en': 'She records everything that happens to her in her diary.',
                'ch': '她把发生在自己身上的一切事情都记在了日记里。'
            }, {
                'en': 'Unemployment is likely to reach the highest total that has ever been recorded.',
                'ch': '失业总人数很可能会创下有史以来的最高纪录。'
            }, {
                'en': 'In his journal, Captain Scott recorded that he and his companions were weakened by lack of food.',
                'ch': '在日志中,斯科特船长写道,因缺少食物他和同伴们身体虚弱不堪。'
            }, {
                'en': 'The coroner recorded (= decided) a verdict of accidental death.',
                'ch': '验尸官判定是意外死亡。'
            }]
        }, {
            'en': 'If a device records a measurement, it shows that measurement.',
            'ch': '(仪器)显示,记录,标明',
            'samples': [{
                'en': 'The thermometer recorded a temperature of 30 degrees Celsius.',
                'ch': '温度计显示温度是30摄氏度。'
            }]
        }]
    }, {
        'pronUk': '/ˈrek.ɔːd/',
        'pronUkUrl': 'https://dictionary.cambridge.org/media/english-chinese-simplified/uk_pron/u/ukr/ukrec/ukrecor001.mp3',
        'pronUs': '/ˈrek.ɚd/',
        'pronUsUrl': 'https://dictionary.cambridge.org/media/english-chinese-simplified/us_pron/r/rec/recor/record_01_01.mp3',
        'pos': 'noun',
        'trans': [{
            'en': 'a piece of information or a description of an event that is written on paper or stored on a computer',
            'ch': '记录;记载',
            'samples': [{
                'en': 'The weather centre keeps a record of the weather.',
                'ch': '气象中心对天气情况都备有记录。'
            }, {
                'en': 'This summer has been the hottest on record (= the hottest summer known about).',
                'ch': '今年夏天是有史以来最热的。'
            }]
        }, {
            'en': 'information about someone or something that is stored by the police or by a doctor',
            'ch': '前科;病历',
            'samples': [{
                'en': "A person's medical records are confidential.",
                'ch': '一个人的病历是保密的。'
            }, {
                'en': 'He is well known to the police and has a long criminal record (= a list kept by the police of his previous crimes).',
                'ch': '他是警察局的常客,有一大堆的犯罪前科。'
            }]
        }, {
            'en': 'the facts that are known about a person or a company and the actions they have done in the past',
            'ch': '履历;历史;经历',
            'samples': [{
                'en': "I won't fly with an airline that has a bad safety record (= whose aircraft have often had accidents).",
                'ch': '我可不愿意搭乘安全纪录很差的航空公司的航班。'
            }]
        }, {
            'en': 'something that you say before you tell someone something important that you want them to remember',
            'ch': '(用于对听话人强调所说之话的重要性)为记录在案目的',
            'samples': [{
                'en': 'And, just for the record, we were never any more than good friends.',
                'ch': '而且,我郑重声明,我们一直是好朋友,仅此而已。'
            }]
        }, {
            'en': 'a flat plastic disc on which music is recorded',
            'ch': '唱片',
            'samples': [{
                'en': 'Would you like to listen to some records?',
                'ch': '你想听些唱片吗?'
            }]
        }, {
            'en': 'a song or music that has been recorded and is available for the public to buy',
            'ch': '(录制的)歌曲,单曲,乐曲',
            'samples': [{
                'en': 'The Beatles\' first hit record was "Love Me Do".',
                'ch': '甲壳虫乐队的第一首走红歌曲是《请爱我》。'
            }]
        }, {
            'en': 'the best or fastest ever done',
            'ch': '最高纪录;最佳成绩',
            'samples': [{
                'en': 'He ran the 100 metres in 9.79 seconds and broke/smashed the world record.',
                'ch': '他以9.79秒的成绩跑完了100米,打破了世界纪录。'
            }, {
                'en': 'She set/established a new European record in the high jump.',
                'ch': '她创造了欧洲跳高的新纪录。'
            }]
        }]
    }, {
        'pronUk': '/ˈrek.ɔːd/',
        'pronUkUrl': 'https://dictionary.cambridge.org/media/english-chinese-simplified/uk_pron/u/ukr/ukrec/ukrecor001.mp3',
        'pronUs': '/ˈrek.ɚd/',
        'pronUsUrl': 'https://dictionary.cambridge.org/media/english-chinese-simplified/us_pron/r/rec/recor/record_01_01.mp3',
        'pos': 'adjective',
        'trans': [{
            'en': 'at a higher level than ever achieved before',
            'ch': '创纪录的;空前的',
            'samples': [{
                'en': 'The long hot summer has led to a record harvest this year.',
                'ch': '这个夏天漫长而又炎热,使得今年成为一个创纪录的丰收年。'
            }, {
                'en': 'Inflation has reached record levels.',
                'ch': '通货膨胀已创历史最高。'
            }, {
                'en': 'We finished the work in record time (= faster than had ever been done before).',
                'ch': '我们以最短的时间完成了工作,这是以前从没有过的。'
            }]
        }]
    }]
}

将之复制到某个json在线格式化的网站, 仔细看看就明白了.

安装运行


sudo pip3 install requests bs4 
git clone https://gitee.com/xiaofeipapa/cam-dict
cd cam-dict
python3 cam_dict.py -w hello

结果:

单词: hello
        
            词性: exclamation  英音: /heˈləʊ/  美音: /heˈloʊ/
            
                used when meeting or greeting someone
                喂,你好(用于问候或打招呼)
                
                    * Hello, Paul. I haven't seen you for ages.
                    * “你好,保罗。好久不见了。”
                    
                    * I know her vaguely - we've exchanged hellos a few times.
                    * 我对她不太熟悉——我们只是打过几次招呼。
                    
                    * I just thought I'd call by and say hello.
                    * 我刚想要去顺道拜访问候一下。
                    
                    * And a big hello (= welcome) to all the parents who've come to see the show.
                    * 非常欢迎所有来看演出的家长们。
                    
                something that is said at the beginning of a phone conversation
                (打电话时的招呼语)你好,喂

最后

您可以自由使用此程序, 记得把原作者(也就是我了)转发一下. 觉得此程序好玩就加个星, 谢谢了.

上一篇下一篇

猜你喜欢

热点阅读