はじめに
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アプリ連携・非同期処理の導入なども視野に入れましょう