[Java] 22 スクレイピング によるテキスト取得

スクレイピングでWebサイトのテキストを取得してみました。

開発サイトから入手したjsoupライブラリは外部ライブラリとして設定しました。VScodeの拡張機能”Java Extension Pack”を使います。

プロジェクトを作るまでもない単独ファイルの場合はVScodeが手軽で便利です。

行の先頭にある波カッコが気になるため、全て行末に置いてみました。これだと一見Pythonっぽくなります。

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 Scraping {
	public static void main(String[] args) {
		try {
			Document doc = Jsoup.connect("対象サイトのURL").get();
			Elements elements = doc.select("タブ名");

			for (Element element : elements) {
				System.out.println(element.text());}}

		catch (IOException e) {
			e.printStackTrace();}}}

[Java] 21 CSVファイルの読み込み

Javaに関する記事は昨年10月以来です。

CSVファイルを読み込んでみました。

BufferedReader等をどうしても閉じることができず放置しています。

波カッコが相変わらず目障りですが、位置は適当でも数さえ合っていればいいので見ないようにしています。

文法がやや複雑なのでPythonでは浮き彫りになるコーダーのセンスが分かりにくいのも特徴の一つでしょうか。

Pythonと比較しながら学習を進めるのも楽しそうです。

import java.io.*;

public class ReadCSV {

    public static void main(String[] args) {
        String file_name = "test.csv";
        try {
            // File file = new File(file_name);
            // FileInputStream input = new FileInputStream(file);
            // InputStreamReader stream = new InputStreamReader(input,"shift_jis");
            // BufferedReader br = new BufferedReader(stream);
            
       // 一つにまとめました
            BufferedReader br = new BufferedReader(
                new InputStreamReader(
                new FileInputStream(
                new File(file_name)),"shift_jis"));

            String line;
            String[] data;

            while ((line = br.readLine()) != null) {
                byte[] b = line.getBytes();
                line = new String(b, "utf-8");
                data = line.split(",");
            
                for (int i = 0; i < data.length; i++) {
                    System.out.print(data[i] + " ");
            }
                System.out.println();
        }
        }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
     
        // 閉じようとしてもエラーになるため省略
        // finally {
        //     try {
        //         br.close();
        // }

        //     catch (Exception e) {
        //         System.out.println(e.getMessage());
        // }
        // }
        }
        }