Merge pull request #121 from WorkTimer/master

百度汉语词典
This commit is contained in:
sthoo 2019-02-25 11:49:51 +08:00 committed by GitHub
commit 8646279232
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 70 additions and 6 deletions

View File

@ -18,6 +18,8 @@ class Baidu_Chinese(WebService):
'pinyin': '', 'pinyin': '',
'basicmean': '', 'basicmean': '',
'detailmean': '', 'detailmean': '',
'synonym': '',
'antonym': '',
'fanyi': '', 'fanyi': '',
'audio_url': '', 'audio_url': '',
} }
@ -38,15 +40,28 @@ class Baidu_Chinese(WebService):
if element: if element:
tag = element.find_all('div', {'class': 'tab-content'}) tag = element.find_all('div', {'class': 'tab-content'})
if tag: if tag:
result['basicmean'] = u''.join(str(x).decode('utf-8') for x in tag) result['basicmean'] = u''.join(str(x) for x in tag)
#详细释义 #详细释义
element = soup.find('div', id='detailmean-wrapper') element = soup.find('div', id='detailmean-wrapper')
if element: if element:
tag = element.find_all('div', {'class': 'tab-content'}) tag = element.find_all('div', {'class': 'tab-content'})
if tag: if tag:
result['detailmean'] = u''.join(str(x).decode('utf-8') for x in tag) result['detailmean'] = u''.join(str(x) for x in tag)
#近义词
element = soup.find('div', id='synonym')
if element:
tag = element.find('div', {'class': 'block'})
if tag:
element = tag.find_all('a')
result['synonym'] = u' '.join(x.get_text() for x in element)
#反义词
element = soup.find('div', id='antonym')
if element:
tag = element.find('div', {'class': 'block'})
if tag:
element = tag.find_all('a')
result['antonym'] = u' '.join(x.get_text() for x in element)
#英文翻译 #英文翻译
element = soup.find('div', id='fanyi-wrapper') element = soup.find('div', id='fanyi-wrapper')
if element: if element:
@ -87,6 +102,20 @@ class Baidu_Chinese(WebService):
return '' return ''
return self._css(val) return self._css(val)
@export([u'近义词', u'Synonym'])
def fld_synonym(self):
val = self._get_field('synonym')
if val is None or val == '':
return ''
return self._css(val)
@export([u'反义词', u'Antonym'])
def fld_antonym(self):
val = self._get_field('antonym')
if val is None or val == '':
return ''
return self._css(val)
@export([u'英文翻译', u'Translation[En]']) @export([u'英文翻译', u'Translation[En]'])
def fld_fanyi(self): def fld_fanyi(self):
return self._get_field('fanyi') return self._get_field('fanyi')

View File

@ -145,7 +145,10 @@ class Youdao(WebService):
@export([u'同根词', u'Related words']) @export([u'同根词', u'Related words'])
def fld_rel_word(self): def fld_rel_word(self):
return self._get_singledict('rel_word') val = self._get_singledict('rel_word')
if val is None or val == '' or u'词根:${rel_word.getStem()}' in str(val):
return ' '
return val
@export([u'同近义词', u'Synonyms']) @export([u'同近义词', u'Synonyms'])
def fld_syno(self): def fld_syno(self):

View File

@ -18,6 +18,8 @@ class Baidu_Chinese(WebService):
'pinyin': '', 'pinyin': '',
'basicmean': '', 'basicmean': '',
'detailmean': '', 'detailmean': '',
'synonym': '',
'antonym': '',
'fanyi': '', 'fanyi': '',
'audio_url': '', 'audio_url': '',
} }
@ -46,7 +48,20 @@ class Baidu_Chinese(WebService):
tag = element.find_all('div', {'class': 'tab-content'}) tag = element.find_all('div', {'class': 'tab-content'})
if tag: if tag:
result['detailmean'] = u''.join(str(x) for x in tag) result['detailmean'] = u''.join(str(x) for x in tag)
#近义词
element = soup.find('div', id='synonym')
if element:
tag = element.find('div', {'class': 'block'})
if tag:
element = tag.find_all('a')
result['synonym'] = u' '.join(x.get_text() for x in element)
#反义词
element = soup.find('div', id='antonym')
if element:
tag = element.find('div', {'class': 'block'})
if tag:
element = tag.find_all('a')
result['antonym'] = u' '.join(x.get_text() for x in element)
#英文翻译 #英文翻译
element = soup.find('div', id='fanyi-wrapper') element = soup.find('div', id='fanyi-wrapper')
if element: if element:
@ -87,6 +102,20 @@ class Baidu_Chinese(WebService):
return '' return ''
return self._css(val) return self._css(val)
@export([u'近义词', u'Synonym'])
def fld_synonym(self):
val = self._get_field('synonym')
if val is None or val == '':
return ''
return self._css(val)
@export([u'反义词', u'Antonym'])
def fld_antonym(self):
val = self._get_field('antonym')
if val is None or val == '':
return ''
return self._css(val)
@export([u'英文翻译', u'Translation[En]']) @export([u'英文翻译', u'Translation[En]'])
def fld_fanyi(self): def fld_fanyi(self):
return self._get_field('fanyi') return self._get_field('fanyi')

View File

@ -145,7 +145,10 @@ class Youdao(WebService):
@export([u'同根词', u'Related words']) @export([u'同根词', u'Related words'])
def fld_rel_word(self): def fld_rel_word(self):
return self._get_singledict('rel_word') val = self._get_singledict('rel_word')
if val is None or val == '' or u'词根:${rel_word.getStem()}' in str(val):
return ' '
return val
@export([u'同近义词', u'Synonyms']) @export([u'同近义词', u'Synonyms'])
def fld_syno(self): def fld_syno(self):