Получение информации о том, существуют ли результаты поиска Google или нет (JAVA)

Я пытаюсь разобрать Google для результатов поиска. Мне нужны не сами результаты поиска, а информация о том, существует ли результат поиска или нет!

Теперь моя проблема в том, что я хочу искать комбинированные строки. Например, "Max Testperson". Теперь Google действительно хорош и говорит мне: мы не смогли найти результаты поиска для "Max Testperson", но вместо этого для Max Testperson. Но!!! Мне не нужен Max Testperson, мне нужен "Max Testperson".

Так что, в основном, я не заинтересован в самих результатах поиска, а в части перед результатами поиска (может ли строка поиска быть найдена или нет!).

Я использовал следующий учебник в Java: http://mph-web.de/web-scraping-with-java-top-10-google-search-results/

С этим я могу разобрать результаты поиска. Но как я и сказал! Нет необходимости в этом! Я просто хочу знать, существует ли моя строка поиска или нет. Так как Google удаляет ->" "<- я все равно получаю результаты поиска.

Кто-нибудь может мне помочь с этим?

1 ответ

Попробуйте добавить параметр get nfpr=1 к вашему поиску, чтобы отключить функцию автокоррекции:

final Document doc = Jsoup.connect("https://google.com/search?q=test"+"&nfpr=1").userAgent(USER_AGENT).get();

Обновить:

Вы могли бы разобрать сообщение о безрезультатности:

public class App {
    public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36";

    public static void main(String[] args) throws Exception {

        String searchTerm = "\"daniel+nasseh\"+\"26.02.1987\"";
        boolean hasExactResults = true;

        final Document doc = Jsoup.connect("https://google.com/search?q=" + searchTerm + "&nfpr=1")
                .userAgent(USER_AGENT).get();

        Elements noResultMessage = doc.select("div.e.obp div.med:first-child");

        if (!noResultMessage.isEmpty()) {

            hasExactResults = false;

            for (Element result : noResultMessage) {
                System.out.println(result.text());
            }
        }

        if (hasExactResults) {
            // Traverse the results
            for (Element result : doc.select("h3.r a")) {

                final String title = result.text();
                final String url = result.attr("href");

                System.out.println(title + " -> " + url);
            }
        }
    }
}

Обновление 2: лучшее решение, представленное самим Донсельмом в комментариях, - добавить &tbs=li:1 форсировать поиск по точному поисковому запросу

String searchTerm = "\"daniel+nasseh\"+\"26.02.1987\"";

final Document doc = Jsoup.connect("https://google.com/search?q=" + searchTerm + "&tbs=li:1").userAgent(USER_AGENT).get();
Другие вопросы по тегам