【问题标题】:Google's "define: " through an API?谷歌的“定义:”通过 API?
【发布时间】:2011-10-15 03:29:17
【问题描述】:

我想获得使用 Google 中特殊功能(例如“定义:[短语]”)的搜索结果,但我似乎找不到与此相关的信息。

有谁知道我可以从哪里获取 JSON 格式的数据(就像 Google 的其他 API 一样),而无需手动抓取结果页面?

谢谢, 以利

【问题讨论】:

  • @Emanuel 您可能想查看下面的更新答案...
  • 所以谷歌词典已经不存在了,现在怎么可能回答这个问题呢?
  • 我创建了dictionaryapi.dev,你可以看看,它是多语言字典API,提供来自google的数据。源码在github上。

标签: json google-api google-search-api


【解决方案1】:
from bs4 import BeautifulSoup
import  requests
word = "democracy"
url = 'https://www.google.co.in/search?q=define%20' + word + '#cns=1'
response = requests.get(url, headers={"user-agent":"Mozilla/5.0(Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0"})
html = response.content
final_soup = BeautifulSoup(html,"html5lib")
everyThing = final_soup.select("div._Jig")
for line in everyThing:
    print("-",line.text)

我编写这个脚本是为了从 google 获取单词的定义。 希望它有所帮助,但它不使用任何 API。

【讨论】:

    【解决方案2】:

    我希望我没有为此设置赏金,因为几天后我偶然发现了答案,这真的很简单。

    如果您想要的定义,请访问以下网址:

    http://www.google.com/dictionary/json?callback=a&sl=en&tl=en&q=love

    你会得到一个包含 JSONP 的响应流,内容如下(“美化”用于学习目的,API 在一行中返回所有内容):

    a(
        {
           "query":"love",
           "sourceLanguage":"en",
           "targetLanguage":"en",
           "primaries":[
              {
                 "type":"headword",
                 "terms":[
                    {
                       "type":"text",
                       "text":"love",
                       "language":"en",
                       "labels":[
                          {
                             "text":"Noun",
                             "title":"Part-of-speech"
                          }
                       ]
                    },
                    {
                       "type":"phonetic",
                       "text":"/ləv/",
                       "language":"und"
                    },
                    {
                       "type":"sound",
                       "text":"http://www.gstatic.com/dictionary/static/sounds/de/0/love.mp3",
                       "language":"und"
                    }
                 ],
                 "entries":[
                    {
                       "type":"related",
                       "terms":[
                          {
                             "type":"text",
                             "text":"loves",
                             "language":"und",
                             "labels":[
                                {
                                   "text":"plural"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"An intense feeling of deep affection",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"babies fill parents with intense feelings of \x3cem\x3elove\x3c/em\x3e",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"their \x3cb\x3e\x3cem\x3elove\x3c/em\x3e for\x3c/b\x3e their country",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"A deep romantic or sexual attachment to someone",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"it was \x3cem\x3elove\x3c/em\x3e at first sight",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"they were both \x3cb\x3ein \x3cem\x3elove\x3c/em\x3e with\x3c/b\x3e her",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"we were slowly \x3cb\x3efalling in \x3cem\x3elove\x3c/em\x3e\x3c/b\x3e",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"A personified figure of \x3cem\x3elove\x3c/em\x3e, often represented as Cupid",
                             "language":"en"
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"A great interest and pleasure in something",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"his \x3cb\x3e\x3cem\x3elove\x3c/em\x3e for\x3c/b\x3e football",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"we share a \x3cb\x3e\x3cem\x3elove\x3c/em\x3e of\x3c/b\x3e music",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"Affectionate greetings conveyed to someone on one\x27s behalf",
                             "language":"en"
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"A formula for ending an affectionate letter",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"take care, lots of \x3cem\x3elove\x3c/em\x3e, Judy",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"A person or thing that one \x3cem\x3eloves\x3c/em\x3e",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"she was \x3cb\x3ethe \x3cem\x3elove\x3c/em\x3e of his life\x3c/b\x3e",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"their two great \x3cem\x3eloves\x3c/em\x3e are tobacco and whiskey",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"A friendly form of address",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"it\x27s all right, \x3cem\x3elove\x3c/em\x3e",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"Used to express affectionate approval for someone",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"don\x27t fret, there\x27s a \x3cem\x3elove\x3c/em\x3e",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"(in tennis, squash, and some other sports) A score of zero; nil",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"\x3cem\x3elove\x3c/em\x3e fifteen",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"he was down two sets to \x3cem\x3elove\x3c/em\x3e",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    }
                 ]
              },
              {
                 "type":"headword",
                 "terms":[
                    {
                       "type":"text",
                       "text":"love",
                       "language":"en",
                       "labels":[
                          {
                             "text":"Verb",
                             "title":"Part-of-speech"
                          }
                       ]
                    },
                    {
                       "type":"phonetic",
                       "text":"/ləv/",
                       "language":"und"
                    },
                    {
                       "type":"sound",
                       "text":"http://www.gstatic.com/dictionary/static/sounds/de/0/love.mp3",
                       "language":"und"
                    }
                 ],
                 "entries":[
                    {
                       "type":"related",
                       "terms":[
                          {
                             "type":"text",
                             "text":"loved",
                             "language":"und",
                             "labels":[
                                {
                                   "text":"past participle"
                                }
                             ]
                          },
                          {
                             "type":"text",
                             "text":"loves",
                             "language":"und",
                             "labels":[
                                {
                                   "text":"3rd person singular present"
                                }
                             ]
                          },
                          {
                             "type":"text",
                             "text":"loving",
                             "language":"und",
                             "labels":[
                                {
                                   "text":"present participle"
                                }
                             ]
                          },
                          {
                             "type":"text",
                             "text":"loved",
                             "language":"und",
                             "labels":[
                                {
                                   "text":"past tense"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"Feel a deep romantic or sexual attachment to (someone)",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"do you \x3cem\x3elove\x3c/em\x3e me?",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    },
                    {
                       "type":"meaning",
                       "terms":[
                          {
                             "type":"text",
                             "text":"Like very much; find pleasure in",
                             "language":"en"
                          }
                       ],
                       "entries":[
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"I\x27d \x3cem\x3elove\x3c/em\x3e a cup of tea, thanks",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"I just \x3cem\x3elove\x3c/em\x3e dancing",
                                   "language":"en"
                                }
                             ]
                          },
                          {
                             "type":"example",
                             "terms":[
                                {
                                   "type":"text",
                                   "text":"a fun-\x3cem\x3eloving\x3c/em\x3e girl",
                                   "language":"en"
                                }
                             ]
                          }
                       ]
                    }
                 ]
              }
           ]
        }
    ,200,null)
    

    Google Dictionary API 以回调函数 (JSONP) 的形式返回。在您可以在函数调用中处理 JSON 之前,您必须剥离回调函数数据。

    这意味着删除第一个 { 之前的所有内容以及最后一个 } 之后的所有内容。

    在这之后你就完成了!这就是您需要的所有信息,并且与您在 Google 中搜索 define love 时的信息基本相同(实际上更多!)。

    【讨论】:

    • 从上面的JSON响应中,\x3cb\x3e\x3cem\x3elove\x3c/em\x3e是什么意思?
    • 同样的问题,请定义\x3cb\x3e\x3cem\x3elove\x3c/em\x3e?这是不需要的字符串,我想删除所有此类代码/字符串。是否有任何此类代码可用的列表,以便我们可以从输出中删除所有这些代码。谢谢
    • 谢谢!我正在考虑支付牛津英语词典为其 API 收取的每月 100 美元!而且 WordNik 的 API 很糟糕。
    • 看起来他们今天摆脱了它。
    • @Eli 我已经从谷歌创建了字典 api,我已经将它作为答案发布在下面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 2015-03-06
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多