Tutorials  /  JavaScript

Google-Suche in Java-Programm mit jsoup

Ccentron Redaktion · November 2024 ·3 Min. Lesezeit ·JavaScript, Tutorial

Vor einiger Zeit suchte ich nach einer Möglichkeit, Google mithilfe eines Java-Programms zu durchsuchen. Ich war überrascht zu sehen, dass Google eine Web-Such-API hatte, diese jedoch längst eingestellt wurde und es jetzt keinen Standardweg mehr gibt, dies zu erreichen. Grundsätzlich ist eine Google-Suche eine HTTP-GET-Anfrage, bei der der Abfrageparameter Teil der URL ist. Zuvor haben wir gesehen, dass es verschiedene Optionen wie Java HttpUrlConnection oder Apache HttpClient gibt, um diese Suche durchzuführen. Das Problem liegt jedoch eher im Parsen der HTML-Antwort, um nützliche Informationen daraus zu extrahieren. Deshalb habe ich mich entschieden, jsoup zu verwenden – einen Open-Source-HTML-Parser, der in der Lage ist, HTML von einer gegebenen URL abzurufen. Unten finden Sie ein einfaches Programm, um Google-Suchergebnisse in einem Java-Programm abzurufen und zu parsen, um die Suchergebnisse zu extrahieren.

Java-Code für die Google-Suche

Unten sehen Sie das Java-Programm, um Google-Suchergebnisse mithilfe von jsoup abzurufen:

Java
package com.journaldev.jsoup;

import java.io.IOException;
import java.util.Scanner;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class GoogleSearchJava {

    public static final String GOOGLE_SEARCH_URL = "https://www.google.com/search";
    public static void main(String[] args) throws IOException {
        //Taking search term input from console
        Scanner scanner = new Scanner(System.in);
        System.out.println("Please enter the search term.");
        String searchTerm = scanner.nextLine();
        System.out.println("Please enter the number of results. Example: 5 10 20");
        int num = scanner.nextInt();
        scanner.close();
        
        String searchURL = GOOGLE_SEARCH_URL + "?q="+searchTerm+"&num="+num;
        //without proper User-Agent, we will get 403 error
        Document doc = Jsoup.connect(searchURL).userAgent("Mozilla/5.0").get();
        
        //below will print HTML data, save it to a file and open in browser to compare
        //System.out.println(doc.html());

		//If google search results HTML change the <h3 to <h3
		//we need to change below accordingly
		Elements results = doc.select("h3.r > a");

		for (Element result : results) {
			String linkHref = result.attr("href");
			String linkText = result.text();
			System.out.println("Text::" + linkText + ", URL::" + linkHref.substring(6, linkHref.indexOf("&")));
		}
	}

}
VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

Beispielausgabe der Google-Suche

Unten sehen Sie eine Beispielausgabe für die Google-Suche in Java-Programm mit jsoup. Ich habe die HTML-Daten in einer Datei gespeichert und in einem Browser geöffnet, um die Ausgabe zu bestätigen:

Google Search Result
Go
Please enter the search term.
journaldev
Please enter the number of results. Example: 5 10 20
20
Text::JournalDev, URL::=https://www.journaldev.com/
Text::Java Interview Questions, URL::=https://www.journaldev.com/java-interview-questions
Text::Java design patterns, URL::=https://www.journaldev.com/tag/java-design-patterns
Text::Tutorials, URL::=https://www.journaldev.com/tutorials
Text::Java servlet, URL::=https://www.journaldev.com/tag/java-servlet
Text::Spring Framework Tutorial ..., URL::=https://www.journaldev.com/2888/spring-tutorial-spring-core-tutorial
Text::Java Design Patterns PDF ..., URL::=https://www.journaldev.com/6308/java-design-patterns-pdf-ebook-free-download-130-pages
Text::Pankaj Kumar (@JournalDev) | Twitter, URL::=https://twitter.com/journaldev
Text::JournalDev | Facebook, URL::=https://www.facebook.com/JournalDev
Text::JournalDev - Chrome Web Store - Google, URL::=https://chrome.google.com/webstore/detail/journaldev/ckdhakodkbphniaehlpackbmhbgfmekf
Text::Debian -- Details of package libsystemd-journal-dev in wheezy, URL::=https://packages.debian.org/wheezy/libsystemd-journal-dev
Text::Debian -- Details of package libsystemd-journal-dev in wheezy ..., URL::=https://packages.debian.org/wheezy-backports/libsystemd-journal-dev
Text::Debian -- Details of package libsystemd-journal-dev in sid, URL::=https://packages.debian.org/sid/libsystemd-journal-dev
Text::Debian -- Details of package libsystemd-journal-dev in jessie, URL::=https://packages.debian.org/jessie/libsystemd-journal-dev
Text::Ubuntu – Details of package libsystemd-journal-dev in trusty, URL::=https://packages.ubuntu.com/trusty/libsystemd-journal-dev
Text::libsystemd-journal-dev : Utopic (14.10) : Ubuntu - Launchpad, URL::=https://launchpad.net/ubuntu/utopic/%2Bpackage/libsystemd-journal-dev
Text::Debian -- Details of package libghc-libsystemd-journal-dev in jessie, URL::=https://packages.debian.org/jessie/libghc-libsystemd-journal-dev
Text::Advertise on JournalDev | BuySellAds, URL::=https://buysellads.com/buy/detail/231824
Text::JournalDev | LinkedIn, URL::=https://www.linkedin.com/groups/JournalDev-6748558
Text::How to install libsystemd-journal-dev package in Ubuntu Trusty, URL::=https://www.howtoinstall.co/en/ubuntu/trusty/main/libsystemd-journal-dev/
Text::[global] auth supported = cephx ms bind ipv6 = true [mon] mon data ..., URL::=https://zooi.widodh.nl/ceph/ceph.conf
Text::UbuntuUpdates - Package "libsystemd-journal-dev" (trusty 14.04), URL::=https://www.ubuntuupdates.org/libsystemd-journal-dev
Text::[Journal]Dev'err - Cursus Honorum - Enjin, URL::=https://cursushonorum.enjin.com/holonet/m/23958869/viewthread/13220130-journaldeverr/post/last

Fazit

Das war alles zur Google-Suche in einem Java-Programm. Verwenden Sie es vorsichtig, da ungewöhnlicher Datenverkehr von Ihrem Computer dazu führen könnte, dass Google Sie blockiert. Stellen Sie sicher, dass Sie die Richtlinien von Google einhalten, und seien Sie sich bewusst, dass das Parsen von HTML instabil sein kann, wenn sich die Seitenstruktur ändert. Bibliotheken wie jsoup bieten eine effiziente Möglichkeit, Daten abzurufen und zu parsen, aber verwenden Sie solche Tools immer verantwortungsvoll und ethisch. Es ist auch wichtig, den generierten Code regelmäßig zu überprüfen und zu aktualisieren, um sicherzustellen, dass er mit den neuesten Änderungen der Google-Suchergebnisseite kompatibel bleibt. Zudem sollte bei der Nutzung von Tools wie jsoup stets ein respektvoller Umgang mit den Daten und ein verantwortungsvolles Handeln gewährleistet sein, um mögliche rechtliche oder technische Probleme zu vermeiden. Viel Erfolg bei der Umsetzung!

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren