在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窗口顯示中文不正常,于是又改回了以前的非同步的感嘆號模式,中文顯示正常。