java - 从 google java 检索单词定义

标签 java google-search google-search-api url-parsing

我的文件中有一个单词列表(1K+),我想获取它们的定义并保存它们。我正在考虑从 Google 获取他们的定义,as it's the first thing that it shows 。我考虑的方法非常基本,即创建一个指向给定单词的 Goole 搜索的 URL 实例,并使用流读取内容。然后,“过滤”定义,该定义始终位于 "data-dobid="dfn"><.span>""<./span>"< 之间/p>

例如:

[...]data-dobid="dfn"><.span>. unwilling or refusing to change one's views or to agree about something<./span>.[...]

顽固的定义是什么

但是我想知道是否有更“有效”的方法,例如不检索搜索的所有其他结果。而且,如果可以在后台线程中加载多个结果,这样当我想要“解码”定义并保存它时,我就不必总是等待搜索完成。

最佳答案

更有效的方法是下载字典,然后可以在本地加载。这为您提供了一个易于搜索的本地文件或数据库。

这种方法不仅计算效率高,而且还可以确保您在其许可下正确使用信息。您提出的建议通常称为“抓取”,可能违反各种许可和服务条款。

This blog post列出了几个免费提供且免费许可的词典。

This AskUbuntu.SE question描述了获取免费词典并从命令行引用它所需的更多技术工作。您可能希望复制这些读取模式以在 Java 中加载数据。

另一种方法是使用免费提供且获得适当许可的 API,例如 https://dictionaryapi.com/ 。这仍然会使用 HTTP 调用,但已获得明确许可,并且也是用于查找人类语言单词定义的显式 API。与抓取 Google 相比,这是一个优势,因为您无需解析 HTML,并且您已获得使用它的适当许可。

最后,StackOverflow 和 StackExchange 上还有一些类似(如果不是重复的话)的问题,例如:How to implement an English dictionary in Java?

关于java - 从 google java 检索单词定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60955804/

相关文章:

java - 在java中将索引附加到多维数组

java - 为什么我的 jsp 文件在 Tomcat 部署到 war 文件时不显示?

java - 使用扫描仪时不输出数组值

Java ProcessBuilder如何捕获来自进程的文件读取请求并作为流提供?

seo - 谷歌索引的图像文件类型 : is TIFF part of it or not?

javascript - 如何提取Google结果页面中的搜索结果总量

google-api - https ://ajax. 的替代方案 googleapis.com/ajax/services/search/images?v=1.0

python appengine unicodeencodeerror on search api snippeted results

javascript - 用 CasperJS 抓取 : page seems to load without javascript enabled

java - 您如何以编程方式搜索 Google 的 Java API