jsongoogle-apigoogle-search-api

Google's "define: " through an API?


I want to get the result of searches that use special features in Google, like "define: [phrase]" and I can't seem to find relevant information about this.

Does anyone knows where I can get the data in JSON format (like the rest of Google's APIs) without scraping the results page manually?

Thanks, Eli


Solution

  • I wish I had not set a bounty for this, because I stumbled upon the answer a few days later and it is really simple.

    Here is URL to call if you want a definition to love:

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

    You will get a response stream containing JSONP, with the following contents ("prettified" for learning purposes, API returns all in one line):

    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 returns in the form of a callback function (JSONP). Before you can process the JSON within the function call, you have to strip out the callback function data.

    That means removing everything before the first { and everything after the last }.

    After this you are done! That's all information you need and it's basically the same (actually a little more!) information when you search Google for define love.