Czy ktoś wie, czy i jak można wyszukiwać w Google programowo - zwłaszcza jeśli jest do tego Java API?
105
Czy ktoś wie, czy i jak można wyszukiwać w Google programowo - zwłaszcza jeśli jest do tego Java API?
Odpowiedzi:
Kilka faktów:
Google oferuje publiczną wyszukiwarkę internetową API, która zwraca JSON : http://ajax.googleapis.com/ajax/services/search/web . Dokumentacja tutaj
Java oferuje
java.net.URL
ijava.net.URLConnection
uruchamia i obsługuje żądania HTTP.JSON można w Javie przekonwertować na pełnowartościowy obiekt Javabean przy użyciu dowolnego Java JSON API. Jednym z najlepszych jest Google Gson .
Teraz policz:
Z tą klasą Javabean reprezentującą najważniejsze dane JSON zwrócone przez Google (w rzeczywistości zwraca ona więcej danych, ale ćwiczenie, aby odpowiednio rozwinąć ten kod Javabean):
Zobacz też:
java.net.URLConnection
Aktualizacja od listopada 2010 (2 miesiące po powyższej odpowiedzi), usługa sieciowa wyszukiwania publicznego stała się przestarzała (a ostatnim dniem, w którym była oferowana, był 29 września 2014). Najlepszym rozwiązaniem jest teraz wysłanie zapytania http://www.google.com/search bezpośrednio wraz z uczciwym klientem użytkownika, a następnie przeanalizowanie wyniku za pomocą parsera HTML . Jeśli pominiesz agenta użytkownika, otrzymasz zwrot 403. Jeśli leżysz w programie użytkownika i symulujesz przeglądarkę internetową (np. Chrome lub Firefox), otrzymujesz znacznie większą odpowiedź HTML, co jest stratą przepustowości i wydajności.
Oto pierwszy przykład użycia Jsoup jako parsera HTML:
źródło
Aby przeszukać google za pomocą interfejsu API, należy użyć Google Custom Search , kopiowanie strony internetowej jest niedozwolone
W java możesz użyć biblioteki klienta API CustomSearch dla języka Java
Zależność mavena to:
Przykładowe wyszukiwanie kodu przy użyciu biblioteki klienta interfejsu API Google CustomSearch
Jak widać, będziesz musiał zażądać klucza API i ustawić własny identyfikator wyszukiwarki, cx .
Obecnie (data odpowiedzi) otrzymujesz 100 połączeń API dziennie za darmo, a następnie Google lubisz dzielić się swoim zyskiem.
źródło
W Warunkach korzystania z usług Google możemy przeczytać:
5.3 Użytkownik zgadza się nie uzyskiwać dostępu (ani nie podejmować prób uzyskania dostępu) do jakichkolwiek Usług w żaden inny sposób niż za pośrednictwem interfejsu udostępnionego przez Google, chyba że otrzymał na to wyraźne zezwolenie w oddzielnej umowie z Google. Użytkownik wyraźnie zgadza się nie uzyskiwać dostępu (ani nie podejmować prób uzyskania dostępu) do żadnej z Usług w jakikolwiek zautomatyzowany sposób (w tym za pomocą skryptów lub robotów indeksujących) i zobowiązuje się przestrzegać instrukcji zawartych w dowolnym pliku robots.txt znajdującym się w Usługach. .
Więc myślę, że odpowiedź brzmi: Nie. Więcej informacji o SOAP API nie jest już dostępne
źródło
Warunki korzystania z usług Google zostały nieco złagodzone w kwietniu 2014 r. Obecnie stwierdza się:
„Nie nadużywaj naszych Usług. Na przykład nie ingeruj w nasze Usługi ani nie próbuj uzyskać do nich dostępu za pomocą metody innej niż interfejs i instrukcje, które udostępniamy”.
Tak więc fragment o „automatycznych środkach” i skryptach zniknął. Najwyraźniej nadal nie jest to pożądany (przez google) sposób uzyskiwania dostępu do ich usług, ale myślę, że jest teraz formalnie otwarty na interpretację tego, czym dokładnie jest „interfejs” i czy ma jakiekolwiek znaczenie, jak dokładnie przetwarzany jest zwracany kod HTML ( renderowane lub analizowane). Tak czy inaczej, napisałem wygodną bibliotekę Javy i od Ciebie zależy, czy z niej skorzystasz, czy nie:
https://github.com/afedulov/google-web-search
źródło
Rzeczywiście istnieje interfejs API do programowego przeszukiwania google. Interfejs API nazywa się wyszukiwaniem niestandardowym Google. Aby korzystać z tego interfejsu API, będziesz potrzebować klucza Google Developer API i klucza cx. Prosta procedura uzyskiwania dostępu do wyszukiwarki Google z programu java jest wyjaśniona na moim blogu.
Teraz martwy, tutaj jest łącze Wayback Machine .
źródło
Jako alternatywę dla odpowiedzi BalusC, która została wycofana i musisz używać serwerów proxy, możesz użyć tego pakietu. Przykład kodu:
Biblioteka na GitHubie
źródło
W świetle tych zmian TOS w zeszłym roku stworzyliśmy API, które daje dostęp do wyszukiwarki Google. To było tylko na własny użytek, ale po kilku prośbach zdecydowaliśmy się go otworzyć. W przyszłości planujemy dodać kolejne wyszukiwarki!
Jeśli ktoś szuka łatwego sposobu na wdrożenie / uzyskanie wyników wyszukiwania, możesz zarejestrować się i wypróbować REST API: https://searchapi.io
Zwraca wyniki JSON i powinien być łatwy do zaimplementowania ze szczegółową dokumentacją.
Szkoda, że Bing i Yahoo są o wiele mil przed Google pod tym względem. Ich interfejsy API nie są tanie, ale przynajmniej dostępne.
źródło
Tylko alternatywa. Przeszukiwanie Google i analizowanie wyników można również przeprowadzić w ogólny sposób przy użyciu dowolnego analizatora HTML, takiego jak Jsoup w Javie. Poniżej znajduje się link do wspomnianego przykładu.
https://www.codeforeach.com/java/example-how-to-search-google-using-java
źródło