我正在尝试跟踪不同单词进入英语词典的日期(牛津,梅里亚姆 - 韦伯斯特等)
我非常希望找到一个API,这样如果我发送自拍'我会回来' 2013'作为回复的一部分,但我认为这些数据并不常见或甚至不易访问。
我看过:
但似乎都没有提供对此数据的访问权。
我正在使用python
,并且还查看了pypi.python.org,但无法找到可以解决此问题的任何模块。
看起来我可能只需要手工收集我正在寻找的数据,但在此之前我想检查是否有人知道更好的方法来解决这个问题。
答案 0 :(得分:0)
这是检索单词的基本脚本。如果一个单词有多个定义,则只选择一个。
import re
import urllib2
# Import Custom libraries
from BeautifulSoup import BeautifulSoup
def render_oxford_uri(term):
'''
Render the appropriate Oxford request uri
'''
base_url = "http://www.oxforddictionaries.com/definition/english/"
url = base_url + ("%s?q=%s" % (re.sub("\s+", "-", term), re.sub("\s+", "+", term)))
return url
def get_words(*args):
'''
Oxford dictionary word scraper
'''
ret_list = []
for term in args:
request_uri = render_oxford_uri(term)
request = urllib2.Request(request_uri, None, {})
try:
response = urllib2.urlopen(request)
the_page = response.read()
except Exception:
the_page = ""
if the_page:
pool = BeautifulSoup(the_page)
result = pool.find("div", attrs={"class" : "entryPageContent"})
if result:
term = result.find("h2" , attrs={"class" : "pageTitle"})
speech_part = result.find("span", attrs={"class" : "partOfSpeech"})
definition = result.find("span", attrs={"class" : "definition"})
date = result.find("span", attrs={"class" : "date"})
cur_dict = \
{
"Term" : term.text,
"Part of Speech" : speech_part.text,
"Definition" : definition.text,
"Date" : date.text,
}
ret_list += [cur_dict]
return ret_list
if __name__ == "__main__":
print get_words("selfie", "vapid")