From 71fd043d290d897772266781d8ab0661c9d2b0af Mon Sep 17 00:00:00 2001 From: WorkTimer Date: Wed, 27 Feb 2019 15:59:28 +0800 Subject: [PATCH] Update baidu_chinese.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加 出处 和 例句字段 --- addons21/fastwq/service/dict/baidu_chinese.py | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/addons21/fastwq/service/dict/baidu_chinese.py b/addons21/fastwq/service/dict/baidu_chinese.py index 73a59ad..2e5ac38 100644 --- a/addons21/fastwq/service/dict/baidu_chinese.py +++ b/addons21/fastwq/service/dict/baidu_chinese.py @@ -11,13 +11,18 @@ class Baidu_Chinese(WebService): super(Baidu_Chinese, self).__init__() def _get_from_api(self): - url = u"http://dict.baidu.com/s?wd={}#basicmean".format(self.quote_word) - html = self.get_response(url, timeout=10) - soup = parse_html(html) + url = u"http://dict.baidu.com/s?wd={}&ptype=zici#basicmean".format(self.quote_word) + try: + html = self.get_response(url, timeout=10) + soup = parse_html(html) + except: + pass result = { 'pinyin': '', 'basicmean': '', 'detailmean': '', + 'source': '', + 'example': '', 'synonym': '', 'antonym': '', 'fanyi': '', @@ -48,6 +53,21 @@ 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='source-wrapper') + if element: + tag = element.find('div', {'class': 'tab-content'}) + if tag: + result['source'] = u''.join(str(x) for x in tag) + + #例句 + element = soup.find('div', id='liju-wrapper') + if element: + tag = element.find('div', {'class': 'tab-content'}) + if tag: + result['example'] = u''.join(str(x) for x in tag) + #近义词 element = soup.find('div', id='synonym') if element: @@ -102,6 +122,19 @@ class Baidu_Chinese(WebService): return '' return self._css(val) + @export([u'出处', u'Source Definitions']) + def fld_source(self): + val = self._get_field('source') + if val is None or val == '': + return '' + return self._css(val) + + @export([u'例句', u'Example Definitions']) + def fld_example(self): + val = self._get_field('example') + if val is None or val == '': + return '' + return self._css(val) @export([u'近义词', u'Synonym']) def fld_synonym(self): val = self._get_field('synonym')