Я хочу использовать 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();
}