Я создаю сканер словаря Spani sh -Engli sh.
Я хочу, чтобы # Part of Speech
получал результат только в диапазоне <div id="dictionary-neodict-es">
.
import requests
from bs4 import BeautifulSoup
from collections import OrderedDict
base_url = "https://www.spanishdict.com/translate/"
search_keyword = input("input the keyword : ")
url = base_url + search_keyword
spanishdict_r = requests.get(url)
spanishdict_soup = BeautifulSoup(spanishdict_r.text, 'html.parser')
# Phonetic Alphabet
print(spanishdict_soup.find("span", {"id": "dictionary-link-es"}).text)
# Part of Speech
part_of_speech = dict.fromkeys([x.text for x in spanishdict_soup.find_all("a", {"class": "href--2RDqa"})]).keys()
for part in part_of_speech:
print(part)
# Meaning
print(spanishdict_soup.find("div", {"id": "quickdef1-es"}).text)
Почему я говорю вам, это потому, что на сайте SpanishDict.com доступны три словарных определения.
1. Curiosity Media Inc.
<div id="dictionary-neodict-es">
2. Harrap Publishers Limited
<div id="dictionary-neoharrap-es">
3. Collins Complete Spanish Electronic Dictionary © HarperCollins Publishers 2011
<div id="dictionary-collins-es">
Сначала вы можете увидеть определение из © Curiosity Media Inc.
. Тогда вы также можете проверить определения других словарей тоже. Поэтому я хочу собирать элементы только из © Curiosity Media Inc.
.
, например, определение modelo
Мой сканер действительно отображается при поиске modelo
:
(moh-deh-loh)
masculine or feminine noun
masculine noun
adjective
Noun
model
существительное мужского или женского рода <- из "dictionary-neodict-es" OK </p>
существительное мужского рода <- из "dictionary-neodict-es" OK </p>
прилагательное <- из "dictionary-neodict-es" OK </p>
Существительное <- собрано из тега другого словаря "dictionary-neoharrap-es", поэтому его не следует отображать (или не анализировать) </p>
model <- from "dictionary-neodict-es" OK </p>
Итак, мой сканер должен дать мне результат в виде
(moh-deh-loh)
masculine or feminine noun
masculine noun
adjective
model
Пожалуйста, помогите мне решить эту проблему. Спасибо.