diff --git a/addons/fastwq/service/dict/cambridge.py b/addons/fastwq/service/dict/cambridge.py index 9f87f4b..3593ded 100644 --- a/addons/fastwq/service/dict/cambridge.py +++ b/addons/fastwq/service/dict/cambridge.py @@ -25,19 +25,19 @@ class Cambridge(WebService): 'def_list': [] } - #english - element = soup.find('div', class_='di-body') + # english + element = soup.find('div', class_='page') if element: - #页 - elements = element.find_all('div', class_='entry-body__el clrd js-share-holder') + # 页 + elements = element.find_all('div', class_='entry-body__el') header_found = False for element in elements: if element: - #音 + # 音 if not header_found: header = element.find('div', class_='pos-header') if header: - tags = header.find_all('span', class_='pron-info') + tags = header.find_all('span', class_='dpron-i') if tags: for tag in tags: r = tag.find('span', class_='region') @@ -45,20 +45,20 @@ class Cambridge(WebService): pn = 'AmE' if reg=='us' else 'BrE' p = tag.find('span', class_='pron') result['pronunciation'][pn] = str(p.get_text()).decode('utf-8') if p else u'' - snd = tag.find('span', class_='circle circle-btn sound audio_play_button') + snd = tag.find('source', type='audio/mpeg') if snd: - result['pronunciation'][pn+'mp3'] = cambridge_url_base + snd.get('data-src-mp3') + result['pronunciation'][pn + 'mp3'] = cambridge_url_base + snd.get('src') header_found = True #义 body = element.find('div', class_='pos-body') if body: - tags = body.find_all('div', class_='def-block pad-indent') + tags = body.find_all('div', class_='def-block') if tags: l = result['def_list'] for tag in tags: i = tag.find('span', class_='def-info') - d = tag.find('b', class_='def') - es = tag.find_all('div', class_='examp emphasized') + d = tag.find('div', class_='def') + es = tag.find_all('div', class_='examp dexamp') l.append( u'
  • {0}{1}{2}
  • '.format( u'{0}'.format(str(i.get_text()).decode('utf-8')) if i else u'', diff --git a/addons21/fastwq/service/dict/cambridge.py b/addons21/fastwq/service/dict/cambridge.py index f1d0b94..c49bcd2 100644 --- a/addons21/fastwq/service/dict/cambridge.py +++ b/addons21/fastwq/service/dict/cambridge.py @@ -31,10 +31,10 @@ class Cambridge(WebService): } # english - element = soup.find('div', class_='cdo-dblclick-area') + element = soup.find('div', class_='page') if element: # 页 - elements = element.find_all('div', class_='entry-body__el clrd js-share-holder') + elements = element.find_all('div', class_='entry-body__el') header_found = False for element in elements: if element: @@ -42,7 +42,7 @@ class Cambridge(WebService): if not header_found: header = element.find('div', class_='pos-header') if header: - tags = header.find_all('span', class_=re.compile("uk|us")) + tags = header.find_all('span', class_='dpron-i') if tags: for tag in tags: r = tag.find('span', class_='region') @@ -50,19 +50,15 @@ class Cambridge(WebService): pn = 'AmE' if reg=='us' else 'BrE' p = tag.find('span', class_='pron') result['pronunciation'][pn] = p.get_text() if p else u'' - snd = tag.find('span', class_='circle circle-btn sound audio_play_button') + snd = tag.find('source', type='audio/mpeg') if snd: - result['pronunciation'][pn+'mp3'] = cambridge_url_base + snd.get('data-src-mp3') + result['pronunciation'][pn+'mp3'] = cambridge_url_base + snd.get('src') header_found = True # 义 - senses = element.find_all('div', id=re.compile("english-chinese-simplified*|" - "english-chinese-traditional*|" - "cald4*|" - "cbed*|" - "cacd*")) + senses = element.find_all('div', class_='pos-body') # 词性 - span_posgram = element.find('span', class_='posgram ico-bg') + span_posgram = element.find('div', class_='posgram') pos_gram = (span_posgram.get_text() if span_posgram else '') if senses: @@ -103,9 +99,9 @@ class Cambridge(WebService): span_df = block.find('span', class_='def-info') def_info = (span_df.get_text().replace('›', '') if span_df else '') - d = block.find('b', class_='def') + d = block.find('div', class_='def') tran = block.find('span', class_='trans') - examps = block.find_all('div', class_='examp emphasized') + examps = block.find_all('span', class_='eg deg') l.append( u'
  • {0}{1}{2}{3}{4} {5}{6}
  • '.format( '{0}'.format(pos_gram) if pos_gram != '' else '',