PythonでWebスクレイピングしたデータをJavaで処理する実践例【CSV経由の連携】

はじめに

Pythonの得意分野であるWebスクレイピングと、Javaの強力なデータ処理能力を組み合わせることで、柔軟かつ高速な業務処理が実現できます。

この記事では、

  • PythonでWebからデータを取得(スクレイピング)
  • CSVに保存
  • JavaでそのCSVを読み込んで処理

という実践的な連携方法を、コード付きで解説します。


使用技術

  • Python 3(BeautifulSoup, requests)
  • Java 11(OpenCSV)

Step 1:PythonでスクレイピングしてCSV保存

必要なライブラリのインストール

pip install requests beautifulsoup4

Pythonコード(titles.csvを出力)

import requests
from bs4 import BeautifulSoup
import csv

url = 'https://example.com'
res = requests.get(url)
soup = BeautifulSoup(res.content, 'html.parser')

titles = soup.select('h2')

with open('titles.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['No', 'Title'])
    for i, title in enumerate(titles, start=1):
        writer.writerow([i, title.get_text(strip=True)])

print("CSV出力完了")

実際のURLやタグは対象ページに合わせて調整してください。


Step 2:JavaでCSVを読み込み処理(OpenCSV)

ライブラリ導入(Maven)

<dependency>
  <groupId>com.opencsv</groupId>
  <artifactId>opencsv</artifactId>
  <version>5.8</version>
</dependency>

Javaコード:CSVを読み込んで整形表示

import com.opencsv.CSVReader;
import java.io.FileReader;
import java.util.List;

public class CsvReaderExample {
  public static void main(String[] args) {
    try (CSVReader reader = new CSVReader(new FileReader("titles.csv"))) {
      List<String[]> lines = reader.readAll();

      for (int i = 1; i < lines.size(); i++) {
        String[] row = lines.get(i);
        System.out.printf("No.%s: %s%n", row[0], row[1]);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Javaでは、OpenCSVを使うとCSVの読み書きが非常に簡単に行えます。


Step 3:Python→Javaのデータ連携のポイント

  • 中間形式としてCSVやJSONを使うことで、両言語間の疎結合が可能
  • Pythonは柔軟なスクレイピングや前処理に向いており、
  • Javaは並列処理や大規模データの整形・保存に向いています

発展例:JavaでCSVをDBに保存

  • Javaで読み込んだCSVデータを、JDBC経由でMySQLなどのDBに格納する
  • Spring Bootと組み合わせて、Webアプリ化することも可能

まとめ

  • PythonとJavaはCSVを仲介形式にすることで簡単に連携可能
  • スクレイピングやAPI連携はPythonに任せ、Javaで整形・保存を担当する構成が実用的
  • 今後の展開として、DB登録・Webアプリ連携・非同期処理の導入なども視野に入れましょう
タイトルとURLをコピーしました