[JAVA] Gratter et écrire des éléments spécifiques dans un fichier

Choses à faire

Scraping à l'aide d'une bibliothèque appelée jsoup pour écrire des éléments spécifiques dans un fichier. À ce moment-là, exportez au format JSON. (Fonctionne avec eclipse)

Contexte

Lorsque je cherchais le partenaire du service, j'ai eu la chance de tomber sur un service avec de nombreux partenaires (?). J'ai pensé qu'il serait difficile de copier ces noms de service et de les mettre au format JSON {" Name ":" Service_name "," Connectivity ":" 1 "}. Le service traité cette fois-ci est Highrise coopération destination.

Bibliothèque à utiliser

Utilisez une bibliothèque appelée ** jsoup ** qui peut extraire du HTML. Page officielle: http://jsoup.org/ Page de téléchargement: http://jsoup.org/download

Vérifiez quelle balise sur la page Web contient les informations souhaitées

En regardant le HTML, image.png J'ai pu confirmer que l'information (nom du service) que je voulais être la prochaine était dans la balise a ** de la balise h4 de la classe d'application **.

Ajoutez le fichier .jar téléchargé à Eclipse

Cliquez avec le bouton droit sur [package] → [Build Path] → cliquez sur [Configure Build Path] L'écran suivant est affiché. image.png Cliquez sur Ajouter un JAR externe et sélectionnez le fichier jsoup .jar que vous avez téléchargé précédemment image.png Cliquez ensuite sur [Appliquer et fermer]. Ceci termine l'ajout. Assurez-vous que vous disposez d'une «bibliothèque de référence» contenant les fichiers .jar ajoutés. image.png

Code d'écriture

Importer jsoup

Main.java


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

Décrivez ce qui précède.

Écrire des opérations sur les fichiers

N'oubliez pas de gérer les exceptions.

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 {
    //Ecrire un fichier
  }catch(IOException e) {
         System.out.println("Erreur d'écriture de fichier");
    }finally {//Fermer le fichier
        if(fw != null) {
            try {
            if(fw != null) {
              fw.close();
            }
            }catch(IOException e2) {}
        }
     }
 }
}

Ecrire le code dans la partie écriture du fichier

Main.java


                        //Fichier ouvert
			fw = new FileWriter("[Chemin du fichier à écrire]", true);
			//Écrire dans un fichier
			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();

Chargez le code HTML du site Web avec Jsoup.connect (" URL "). Get (); Trouvez la balise HTML requise avec document.select (" tag ");. Dans ce cas, comme il existe plusieurs cas, tous les éléments correspondants sont inclus dans les éléments. Sortez un par un avec pour Récupérez le texte HTML correspondant avec ʻelement.text (); . (Dans le cas des attributs, ʻattr ("nom d'attribut") ʻau lieu de texte) Lors de l'écriture dans un fichier, il est au format JSON, donc cette fois il doit être défini sur {" Name ":" Service_name "," Connectivity ":" 1 "}`.

J'ai pu l'écrire comme ça. Je suis heureux. image.png

Ce que j'ai utilisé comme référence

Merci beaucoup. Remarque d'utilisation de jsoup: https://qiita.com/opengl-8080/items/d4864bbc335d1e99a2d7 Raclons avec Java! !! : https://qiita.com/takahiroSakamoto/items/c2b269c07e15a04f5861 ■ [Java] [Html Parser] [jsoup] Comment utiliser la bibliothèque Java "jsoup" qui peut utiliser le HTML comme jquery. : http://d.hatena.ne.jp/it-tech-dm/20110123/1295774869

Recommended Posts

Gratter et écrire des éléments spécifiques dans un fichier
Je souhaite surveiller un fichier spécifique avec WatchService
Comment charger un fichier de téléchargement Spring et afficher son contenu
Comment lire un fichier et le traiter comme une entrée standard
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Mémo personnel] Écriture d'un fichier à l'aide de BufferedWriter
Comment enregistrer JFR (Java Flight Recorder) et générer un fichier de vidage
Utilisez Stream # collect pour récupérer et répertorier uniquement des champs spécifiques à partir d'une liste Java Bean
Comment compresser un fichier JAVA CSV et le gérer dans un tableau d'octets
Écrire dans un fichier en utilisant ShiftJIS ・ Lire un fichier (Kotlin / JVM)
Définir l'heure de LocalDateTime à une heure spécifique
Histoire d'essayer de faire fonctionner le fichier JAVA
Pour déployer manuellement Struts2 en tant que fichier war
Préparer un environnement de scraping avec Docker et Java
Introduction à Apache Beam (1) ~ Lecture et écriture de texte ~
Créer un servlet Java et un fichier WAR JSP à déployer sur Apache Tomcat 9 avec Gradle
<java> Lire le fichier Zip et le convertir directement en chaîne
Comment passer d'Eclipse Java à un fichier SQL
Comment faire fonctionner JavaScript sur une page spécifique
Comment supprimer des éléments d'adaptateur personnalisés à l'aide d'un modèle personnalisé
Comment télécharger des fichiers (Servlet, HTML, Apache, Tomcat)
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Expression régulière Ruby Extrait d'une chaîne de caractères spécifique vers une chaîne de caractères
Comment convertir un fichier en tableau d'octets en Java
21 Lire et exécuter le script à partir du fichier
[Rails] Comment charger JavaScript dans une vue spécifique
[IOS] Pour autoriser la rotation d'un écran spécifique uniquement
J'ai essayé de mâcher C # (lire et écrire des fichiers)
Je veux obtenir une liste du contenu d'un fichier zip et sa taille non compressée