Кто-нибудь знает, можно ли и как искать в Google программно - особенно если для этого есть Java API?
105
Кто-нибудь знает, можно ли и как искать в Google программно - особенно если для этого есть Java API?
Ответы:
Некоторые факты:
Google предлагает общедоступный API веб-службы поиска, который возвращает JSON : http://ajax.googleapis.com/ajax/services/search/web . Документация здесь
Java предлагает
java.net.URL
иjava.net.URLConnection
запускать и обрабатывать HTTP-запросы.JSON может быть преобразован в Java в полноценный объект Javabean с использованием произвольного Java JSON API. Один из лучших - Google Gson .
Теперь посчитаем:
С этим классом Javabean, представляющим наиболее важные данные JSON, возвращаемые Google (на самом деле он возвращает больше данных, но это оставлено на ваше усмотрение в качестве упражнения для соответствующего расширения этого кода Javabean):
Смотрите также:
java.net.URLConnection
Обновление с ноября 2010 г. (через 2 месяца после указанного выше ответа) веб -сервис общедоступного поиска устарел (и последний день, когда эта услуга была предложена, было 29 сентября 2014 г.). Лучше всего сейчас запрашивать http://www.google.com/search напрямую вместе с честным пользовательским агентом, а затем анализировать результат с помощью парсера HTML . Если вы опустите пользовательский агент, вы получите ответ 403. Если вы лежите в пользовательском агенте и имитируете веб-браузер (например, Chrome или Firefox), вы получаете гораздо больший ответ HTML, что является пустой тратой полосы пропускания и производительности.
Вот начальный пример использования Jsoup в качестве парсера HTML:
источник
Для поиска в Google с помощью API вы должны использовать Google Custom Search , очистка веб-страницы не разрешена.
В java вы можете использовать клиентскую библиотеку CustomSearch API для Java
Зависимость от maven:
Пример поиска кода с использованием клиентской библиотеки Google CustomSearch API
Как видите, вам нужно будет запросить ключ api и настроить собственный идентификатор поисковой системы cx .
В настоящее время (дата ответа) вы получаете 100 вызовов API в день бесплатно, а затем Google хочет поделиться вашей прибылью.
источник
В Условиях использования Google мы можем прочитать:
5.3. Вы соглашаетесь не получать (и не пытаться получить доступ) к каким-либо Услугам никакими средствами, кроме интерфейса, предоставляемого Google, за исключением случаев, когда вам было специально разрешено это делать в отдельном соглашении с Google. Вы прямо соглашаетесь не получать (и не пытаться получить доступ) к любым Сервисам с помощью каких-либо автоматических средств (включая использование скриптов или веб-сканеров) и обязуетесь соблюдать инструкции, изложенные в любом файле robots.txt, представленном в Сервисах. .
Думаю, ответ - нет. Более того, SOAP API больше не доступен.
источник
Условия использования Google были немного смягчены в апреле 2014 года. Теперь они гласят:
«Не злоупотребляйте нашими Сервисами. Например, не вмешивайтесь в наши Сервисы и не пытайтесь получить к ним доступ, используя другой метод, кроме интерфейса и инструкций, которые мы предоставляем».
Так что отрывка об «автоматизированных средствах» и скриптах теперь нет. Очевидно, это все еще не желаемый (со стороны Google) способ доступа к их службам, но я думаю, что теперь он формально открыт для интерпретации того, что такое «интерфейс» и имеет ли это какое-либо значение в отношении того, как именно обрабатывается возвращаемый HTML ( обработанный или проанализированный). Как бы то ни было, я написал удобную библиотеку Java, и вам решать, использовать ее или нет:
https://github.com/afedulov/google-web-search
источник
Действительно, есть API для программного поиска в Google. API называется пользовательским поиском Google. Для использования этого API вам понадобится ключ Google Developer API и ключ cx. В моем блоге объясняется простая процедура доступа к поиску Google из Java-программы.
Теперь мертв, вот ссылка на Wayback Machine .
источник
В качестве альтернативы ответу BalusC, поскольку он устарел и вам нужно использовать прокси, вы можете использовать этот пакет. Пример кода:
Библиотека на GitHub
источник
В свете этих изменений TOS в прошлом году мы создали API, который дает доступ к поиску Google. Он был предназначен только для нашего собственного использования, но после некоторых запросов мы решили открыть его. Мы планируем добавить дополнительные поисковые системы в будущем!
Если кто-то ищет простой способ реализовать / получить результаты поиска, вы можете зарегистрироваться и попробовать REST API: https://searchapi.io
Он возвращает результаты в формате JSON и должен быть достаточно простым для реализации с помощью подробной документации.
Жаль, что Bing и Yahoo намного опережают Google в этом отношении. Их API-интерфейсы недешевы, но, по крайней мере, доступны.
источник
Просто альтернатива. Поиск в Google и анализ результатов также могут выполняться обычным способом с использованием любого парсера HTML, такого как Jsoup в Java. Ниже приводится ссылка на упомянутый пример.
https://www.codeforeach.com/java/example-how-to-search-google-using-java
источник