Référence / Site Coffre à jouets informatique (https://ittoybox.com/archives/385) Sume et verres (http://tm8r.hateblo.jp/entry/2013/11/26/125937) M. Terry③ (https://qiita.com/Terry3/items/0c1829130111967773bf) M. takahiroSakamoto (https://qiita.com/takahiroSakamoto/items/c2b269c07e15a04f5861)
Personne inexpérimentée Je viens d'apprendre la grammaire java. Puisqu'il est opéré sous une forme commémorative, l'imiter ne veut pas dire que ça ira bien. Je voudrais plutôt demander un enseignement à tout le monde.
J'ai entendu dire que jsoup devrait être utilisé pour le grattage, alors je me suis préparé à l'utiliser. J'utilise un iPhone Eclipse.
Téléchargez le fichier jar sur le site suivant (https://jsoup.org/download)
Créez le package "Scraping" et créez le fichier "lib" directement en dessous. Copiez le fichier jar précédent dans le fichier "lib".
Passez ensuite le laissez-passer de classe. Cette zone est expliquée dans "IT Toy Box" avec une image. Je suis très reconnaissant.
Tout d'abord, depuis l'importation du jsoup introduit
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
Il semble que l'instruction jsoup doit être incluse dans une instruction try-catch, j'ai donc également importé IOException en même temps.
Bon, c'est une cible de grattage, mais il y a encore beaucoup de parties que je ne comprends pas bien, alors commençons par gratter la première page de "Yahoo! Japan".
public static void main(String[] args) {
//try-Besoin d'une déclaration de capture
try {
//Document A = Jsoup.connect("url").get();Scraping de la cible sur l'URL
Document doc = Jsoup.connect("https://www.yahoo.co.jp/").get();
//Elements B = A.select("marque"); この形でソースに含まれるmarqueで指定された範囲を書き出す。
Elements elm = doc.select("title");
//Étendu pour déclaration
for(Element elms : elm) {
String title = elms.text();
System.out.println(title); //Résultat Yahoo!JAPAN
}
//Gestion des exceptions
}catch(IOException e) {
e.printStackTrace();
}
}
}
Il semble que jsoup ait une méthode de connexion et une méthode de sélection, et il est possible de spécifier respectivement une URL et une balise. En spécifiant la balise url, vous pouvez facilement supprimer des éléments inutilisés tels que javascript.
Je vois, j'ai découvert en quelque sorte, j'ai expérimenté sur d'autres sites.
Quoi qu'il en soit, je vais gratter la page intitulée Liste des conférences 2018 de l'Association archéologique japonaise pour faciliter la compréhension de la différence de format tabulaire. Page cible (http://archaeology.jp/learning/university/2018kougiichiran/#)
Le code est presque le même
public static void main(String[] args) {
//try-catch文が必要 try {
// Document A = Jsoup.connect ("url"). Get (); Scraping target on url Document doc = Jsoup.connect("http://archaeology.jp/learning/university/2018kougiichiran/#").get();
// Éléments B = A.select ("tag"); Ecrivez la plage spécifiée par la balise contenue dans la source dans ce formulaire. Elements elm = doc.select("tbody");
//拡張for文 for(Element elms : elm) { String title = elms.text(); System.out.println(title); }
//例外処理 }catch(IOException e) { e.printStackTrace(); } }
Dans ce cas, la sortie du résultat vers la console est
La forme est alignée côte à côte.
C'est difficile à voir, alors
// Éléments B = A.select ("tag"); Ecrivez la plage spécifiée par la balise contenue dans la source dans ce formulaire. Elements elm = doc.select("tbody tr"); Si vous ajoutez une balise qui sépare la ligne de ("tbody tr")
Il semble qu'il puisse être exporté presque selon la page d'accueil.
Une fois pratiqué ici ① Terminé. Le but ultime est de pouvoir récupérer des informations sur les courses de chevaux. Fondamentalement, javascript gêne, alors comment le lire semble être le point.
Recommended Posts