como descobrir se a string está no dicionário [duplicado]
Aug 28 2020
Quero saber se uma palavra está no dicionário.
Aqui está o que estou tentando.
import requests
def word_in_dictionary(word):
response = requests.get('https://en.wiktionary.org/wiki/'+word)
return response.status_code==200
print(word_in_dictionary('potato')) # True
print(word_in_dictionary('nobblebog')) # False
Mas infelizmente o dicionário contém muitas palavras que não são do inglês e eu não quero igualá-las.
print(word_in_dictionary('bardzo')) # WANT THIS TO BE FALSE
Então eu tentei olhar no conteúdo.
def word_in_dictionary(word):
response = requests.get('https://en.wiktionary.org/wiki/'+word)
return response.status_code==200 and 'English' in response.content.decode()
Mas ainda estou ficando True. Está encontrando "inglês" em algum lugar na fonte da página, mesmo que a página renderizada não o tenha (nada quando pesquiso com ctrl-F no navegador).
Como posso fazer com que apenas retorne True se estiver realmente listado como tendo um significado em inglês?
Respostas
5 AndrejKesely Aug 28 2020 at 18:10
Olhando para o código HTML, se a palavra for inglês, há tag com id="English". Você pode tentar este código:
import requests
from bs4 import BeautifulSoup
def word_in_dictionary(word):
response = requests.get('https://en.wiktionary.org/wiki/'+word)
return response.status_code==200 and bool(BeautifulSoup(response.content, 'html.parser').select_one('#English'))
print(word_in_dictionary('potato')) # True
print(word_in_dictionary('nobblebog')) # False
print(word_in_dictionary('bardzo')) # False
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino