見出し画像

ChatGPTにJavaのスクレイピングプログラムについて聞いてみた

Q. スクレイピングのプログラムをJavaで書いてます。 https://note.com/ から以下のHTMLを参考にスクレイピングプログラムを書いてください。



もちろんです。スクレイピングはサイトの利用規約に違反しないよう注意してください。以下は、Javaを使用してhttps://note.com/から記事のタイトルとURLを取得するための簡単なスクレイピングの例です。Jsoupを使用してHTMLを解析します。

まず、Jsoup ライブラリをプロジェクトに追加してください。Mavenを使用している場合は、以下の依存性を pom.xml に追加します。

xml

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version>
</dependency>

次に、以下はスクレイピングのサンプルコードです。

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

import java.io.IOException;

public class NoteScraper {

    public static void main(String[] args) {
        String url = "https://note.com/"; // 対象のURL

        try {
            // Jsoupを使用してHTMLを取得
            Document document = Jsoup.connect(url).get();

            // 記事の要素を取得
            Elements articles = document.select(".p-card-content");

            // 各記事のタイトルとURLを表示
            for (Element article : articles) {
                String title = article.select(".o-timeline-article-title").text();
                String articleUrl = "https://note.com" + article.select(".o-timeline-article-title a").attr("href");

                System.out.println("Title: " + title);
                System.out.println("URL: " + articleUrl);
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

この例では、Jsoup.connect(url).get() を使用して指定したURLからHTMLを取得し、document.select(...) を使用して記事の要素を選択しています。記事ごとにタイトルとURLを取得しています。実際のサイトのHTML構造によっては、セレクタを適切に変更する必要があります。


この記事が気に入ったらサポートをしてみませんか?