Googles Custom Search, как если бы вы искали вручную - PullRequest
0 голосов
/ 04 октября 2018

Я хочу использовать Googles Custom Search Api для поиска текстов песен в Интернете через Java.Для получения названия и исполнителя текущей песни я использую Tesseract OCR.Даже если OCR работает отлично, я часто не получаю никаких результатов.
Но когда я пробую это вручную: откройте Google в веб-браузере и найдите ту же строку, тогда она будет работать нормально.Так что теперь я действительно не знаю, в чем разница между поисковой системой вручную и вызовом API.
Нужно ли добавлять некоторые параметры в запрос API?

//The String searchString is what I am searching for, so the song name and artist 
String searchUrl = "https://www.googleapis.com/customsearch/v1?key=(myKEY)=de&cx=(myID)&q=" + searchString + "lyrics";    
String data = getData(searchUrl);

JSONObject json = new JSONObject(data);
String link = "";
try
{
   link = json.getJSONArray("items").getJSONObject(0).getString("link");
   URI url = new URI(link);
   System.out.println(link);            
   Desktop.getDesktop().browse(url);
}
catch(Exception e)
{
   System.out.println("No Results");
}

private static String getData(String _urlLink) throws IOException
{   
    StringBuilder result = new StringBuilder();     
    URL url = new URL(_urlLink);
    URLConnection conn = url.openConnection();
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while((line = rd.readLine()) != null)
    {
        result.append(line);
    }
    rd.close();
    return result.toString();       

}

1 Ответ

0 голосов
/ 03 декабря 2018

Попробуйте удалить = de перед & cx и использовать + для представления пробела между словами.Как это -
https://www.googleapis.com/customsearch/v1?key=(yourKEY)&cx=(yourID)&q=paradise+coldplay+lyrics

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...