39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
|
|
#-*- coding:utf-8 -*-
|
||
|
|
import random
|
||
|
|
from ..base import *
|
||
|
|
|
||
|
|
|
||
|
|
@register(u'Vocabulary.com')
|
||
|
|
class Vocabulary(WebService):
|
||
|
|
|
||
|
|
def __init__(self):
|
||
|
|
super(Vocabulary, self).__init__()
|
||
|
|
|
||
|
|
def _get_from_api(self):
|
||
|
|
data = self.get_response(u'https://www.vocabulary.com/dictionary/{}'.format(self.quote_word))
|
||
|
|
soup = parse_html(data)
|
||
|
|
result = {
|
||
|
|
'short': u'',
|
||
|
|
'long': u'',
|
||
|
|
}
|
||
|
|
|
||
|
|
# short
|
||
|
|
element = soup.find('p', class_='short')
|
||
|
|
if element:
|
||
|
|
result['short'] = u''.join(str(e) for e in element.contents)
|
||
|
|
|
||
|
|
# long
|
||
|
|
element = soup.find('p', class_='long')
|
||
|
|
if element:
|
||
|
|
result['long'] = u''.join(str(e) for e in element.contents)
|
||
|
|
|
||
|
|
return self.cache_this(result)
|
||
|
|
|
||
|
|
@export([u'简短释义', u'Short definition'])
|
||
|
|
def fld_definate(self):
|
||
|
|
return self._get_field('short')
|
||
|
|
|
||
|
|
@export([u'详细释义', u'Long definition'])
|
||
|
|
def fld_example(self):
|
||
|
|
return self._get_field('long')
|