340.collins字典解析3

在Debug过程中遇到了很多错误,后面发现都是没有统一的格式化文本造成的,尤其是在星级前面的空格,耽误了很多时间。

def digitize_star(_star):
    '''
    :param _star: 词典中提取的星级图形符号,如''
    :return: 数字星级1-5
    '''
    n = 0
    for i in range(5):
        if  _star[i] == '':
            n += 1
        else:
            return n
    return n

f = open("E:/Desktop/collins.txt", 'r', encoding='utf-8')
def process_line(line):
    soup = BeautifulSoup((line), 'html.parser')
    _word = soup.font.string
    _star = soup.find_all('font')
    _num = 0
    for t in _star:
        if 'style' in t.attrs and t.attrs['style'] == 'color:grey;':
            _num = digitize_star(t.string[1:])
    _star = _num
    print(_star, ' ', _word)
    # _div = soup.div.div.div
for i in range (6):
    line = f.readline()
    process_line(line)
f.close()

此时,文件已经可以输出星级加单词的形式列表。

|| [python 1.py]
|| 0   24-7
|| 0   911
|| 0   999
|| 2   A
|| 5   a
|| 0   a-
|| [Finished in 0 seconds]

现在让我们加入序号,词性和词义。

格式的不统一让我浪费了很多时间,可见统一的格式对数据库是多么重要。很多事情就是因为某个单词,没有一项,或者多出了某个项,就不停的一直出bug。要特意写一个条件的判断,这个格式是否统一,才能够解决这个问题。

还有对于bs4的应用,基础功还是不够扎实。尤其对于标签里面没有标签的纯文本如何提取。还有对于bs4特定对象的类型的组成,很多都是可迭代的文本。以及对于contents对象的使用。都有许多要改进的。

在使用的过程中,vim的asyncrun输出的quickfix窗口显示中文不正常,于是又改回了以前的非同步的感叹号模式,中文显示正常。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,799评论 25 709
  • 曾经看到一篇文章说,因为一个人爱上一座城市。虽然之前和那座城市是那么的不相干,却在猛然中,因为某个人因为某段情因为...
    知易行难789阅读 3,126评论 0 0
  • 2017年11月21日:今天是星期二,通过检查杨峰瑞的作业。发现他的数字写的不够标准,还有待加强没有以...
    航航2阅读 2,312评论 0 1
  • 7月份上了2天的急救课,学到了很多实用的急救知识。现在把整理如下 1溺水急救 重点:(不控水)90%的溺水都是干性...
    甜杏仁阅读 1,378评论 0 0
  • 作者:全冠晶食用菌调理\潘映航 今天我起床的时候还是很头疼,估计发烧还没退。头还是晕晕的,小女儿这几天也是,咳嗽感...
    短视频制作启航阅读 1,163评论 0 1