[JAVA] Scraping und Schreiben bestimmter Elemente in eine Datei

Dinge die zu tun sind

Scraping mit einer Bibliothek namens jsoup, um bestimmte Elemente in eine Datei zu schreiben. Exportieren Sie zu diesem Zeitpunkt im JSON-Format. (Funktioniert mit Eclipse)

Hintergrund

Als ich den Partner des Dienstes aufsuchte, hatte ich das Glück, auf einen Dienst mit vielen Partnern zu stoßen (?). Ich dachte, es wäre schwierig, diese Dienstnamen zu kopieren und in das JSON-Format "{" Name ":" Dienstname "," Konnektivität ":" 1 "}" zu setzen. Der diesmal abgewickelte Dienst ist Ziel der Hochhauskooperation.

Bibliothek zu verwenden

Verwenden Sie eine Bibliothek namens ** jsoup **, die HTML kratzen kann. Offizielle Seite: http://jsoup.org/ Download-Seite: http://jsoup.org/download

Überprüfen Sie, welches Tag auf der Webseite die gewünschten Informationen enthält

HTML betrachten, image.png Ich konnte bestätigen, dass sich die Informationen, die ich als Nächstes verwenden möchte (Dienstname), im a-Tag ** des h4-Tags der ** App-Klasse befinden.

Fügen Sie die heruntergeladene JAR-Datei zu Eclipse hinzu

Klicken Sie mit der rechten Maustaste auf [Paket] → [Erstellungspfad] → Klicken Sie auf [Erstellungspfad konfigurieren]. Der folgende Bildschirm wird angezeigt. image.png Klicken Sie auf Externe JAR hinzufügen und wählen Sie die zuvor heruntergeladene jsoup .jar-Datei aus image.png Klicken Sie dann auf [Übernehmen und schließen]. Damit ist die Hinzufügung abgeschlossen. Stellen Sie sicher, dass Sie eine "Referenzbibliothek" haben, die die hinzugefügten JAR-Dateien enthält. image.png

Code schreiben

Jsoup importieren

Main.java


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

Beschreiben Sie das Obige.

Schreiben Sie Dateivorgänge

Vergessen Sie nicht, Ausnahmen zu behandeln.

Main.java


import java.io.FileWriter;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Main {

 public static void main(String[] args) {
  FileWriter fw = null;
  try {
    //Eine Datei schreiben
  }catch(IOException e) {
         System.out.println("Fehler beim Schreiben der Datei");
    }finally {//Datei schließen
        if(fw != null) {
            try {
            if(fw != null) {
              fw.close();
            }
            }catch(IOException e2) {}
        }
     }
 }
}

Schreiben Sie den Code in den Schreibteil der Datei

Main.java


                        //Datei öffnen
			fw = new FileWriter("[Pfad der zu schreibenden Datei]", true);
			//In Datei schreiben
			Document document = Jsoup.connect("https://highrisehq.com/extras/").get();
			Elements elements = document.select(".app h4 a");
			for (Element element : elements) {
				String name = element.text();
				fw.write("{\"Name\":\"" + name + "\",\"Connectivity\":\"1\"}\n");
				System.out.println(name);
			}
			fw.flush();

Laden Sie den HTML-Code der Website mit Jsoup.connect (" URL "). Get (); Suchen Sie das gewünschte HTML-Tag mit document.select (" tag ");. In diesem Fall sind alle entsprechenden Elemente in Elementen enthalten, da es mehrere Fälle gibt. Nehmen Sie eins nach dem anderen mit "für" heraus Holen Sie sich den entsprechenden HTML-Text mit element.text ();. (Bei Attributen "attr (" Attributname ")" anstelle von Text) Wenn Sie in eine Datei schreiben, liegt diese im JSON-Format vor. Daher sollte diesmal "{" Name ":" Dienstname "," Konnektivität ":" 1 "}" festgelegt werden.

Ich konnte es so ausschreiben. Ich bin glücklich. image.png

Was ich als Referenz verwendet habe

Vielen Dank. Hinweis zur Verwendung von jsoup: https://qiita.com/opengl-8080/items/d4864bbc335d1e99a2d7 Lass uns mit Java kratzen! !! : https://qiita.com/takahiroSakamoto/items/c2b269c07e15a04f5861 ■ [Java] [HTML-Parser] [jsoup] Verwendung der Java-Bibliothek "jsoup", die HTML wie jquery ausführen kann. : http://d.hatena.ne.jp/it-tech-dm/20110123/1295774869

Recommended Posts

Scraping und Schreiben bestimmter Elemente in eine Datei
Ich möchte eine bestimmte Datei mit WatchService überwachen
So laden Sie eine Spring-Upload-Datei und zeigen ihren Inhalt an
So lesen Sie eine Datei und behandeln sie als Standardeingabe
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Persönliches Memo] Schreiben einer Datei mit BufferedWriter
So zeichnen Sie JFR (Java Flight Recorder) auf und geben eine Dump-Datei aus
Verwenden Sie Stream # collect, um nur bestimmte Felder aus einer Java Bean-Liste abzurufen und aufzulisten
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
Mit ShiftJIS in Datei schreiben ・ Datei lesen (Kotlin / JVM)
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
Die Geschichte des Versuchs, JAVA File zu bedienen
So stellen Sie Struts2 manuell als Kriegsdatei bereit
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Einführung in Apache Beam (1) ~ Lesen und Schreiben von Text ~
Erstellen Sie ein Java-Servlet und eine JSP-WAR-Datei für die Bereitstellung auf Apache Tomcat 9 mit Gradle
<java> Zip-Datei lesen und direkt in String konvertieren
So springen Sie von Eclipse Java zu einer SQL-Datei
So funktioniert JavaScript auf einer bestimmten Seite
So löschen Sie benutzerdefinierte Adapterelemente mithilfe eines benutzerdefinierten Modells
Herunterladen von Dateien (Servlet, HTML, Apache, Tomcat)
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Ruby regulärer Ausdruck Auszug aus einer bestimmten Zeichenfolge in eine Zeichenfolge
So konvertieren Sie eine Datei in ein Byte-Array in Java
21 Lesen Sie das Skript aus der Datei und führen Sie es aus
[Rails] So laden Sie JavaScript in einer bestimmten Ansicht
[IOS] Zum Drehen nur eines bestimmten Bildschirms
Ich habe versucht, C # zu kauen (Dateien lesen und schreiben)
Ich möchte eine Liste des Inhalts einer Zip-Datei und ihrer unkomprimierten Größe erhalten