diff --git a/addons/fastwq/service/dict/baidu_chinese.py b/addons/fastwq/service/dict/baidu_chinese.py index 3b0ed2a..73a59ad 100644 --- a/addons/fastwq/service/dict/baidu_chinese.py +++ b/addons/fastwq/service/dict/baidu_chinese.py @@ -18,6 +18,8 @@ class Baidu_Chinese(WebService): 'pinyin': '', 'basicmean': '', 'detailmean': '', + 'synonym': '', + 'antonym': '', 'fanyi': '', 'audio_url': '', } @@ -38,15 +40,28 @@ class Baidu_Chinese(WebService): if element: tag = element.find_all('div', {'class': 'tab-content'}) 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') if element: tag = element.find_all('div', {'class': 'tab-content'}) 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') if element: @@ -87,6 +102,20 @@ class Baidu_Chinese(WebService): return '' 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]']) def fld_fanyi(self): return self._get_field('fanyi') diff --git a/addons/fastwq/service/dict/youdao.py b/addons/fastwq/service/dict/youdao.py index 8c02c10..211b925 100644 --- a/addons/fastwq/service/dict/youdao.py +++ b/addons/fastwq/service/dict/youdao.py @@ -145,7 +145,10 @@ class Youdao(WebService): @export([u'同根词', u'Related words']) 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']) def fld_syno(self): diff --git a/addons21/fastwq/service/dict/baidu_chinese.py b/addons21/fastwq/service/dict/baidu_chinese.py index d96d230..73a59ad 100644 --- a/addons21/fastwq/service/dict/baidu_chinese.py +++ b/addons21/fastwq/service/dict/baidu_chinese.py @@ -18,6 +18,8 @@ class Baidu_Chinese(WebService): 'pinyin': '', 'basicmean': '', 'detailmean': '', + 'synonym': '', + 'antonym': '', 'fanyi': '', 'audio_url': '', } @@ -46,7 +48,20 @@ class Baidu_Chinese(WebService): tag = element.find_all('div', {'class': 'tab-content'}) if 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') if element: @@ -87,6 +102,20 @@ class Baidu_Chinese(WebService): return '' 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]']) def fld_fanyi(self): return self._get_field('fanyi') diff --git a/addons21/fastwq/service/dict/youdao.py b/addons21/fastwq/service/dict/youdao.py index 8c02c10..211b925 100644 --- a/addons21/fastwq/service/dict/youdao.py +++ b/addons21/fastwq/service/dict/youdao.py @@ -145,7 +145,10 @@ class Youdao(WebService): @export([u'同根词', u'Related words']) 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']) def fld_syno(self):