はい、深さ優先探索法を使用して、Webサイト上のすべてのページから再帰的にリンクを抽出するようにコードを修正することができます。以下は、Jsoupライブラリを使用して、ウェブサイト上のすべてのページから再帰的にリンクを抽出するJavaコードの更新です：
```
public class RecursiveLinkExtractor {
    private static Set<String> visitedUrls = new HashSet<>();

    public static void main(String[] args) {
        extractLinksRecursively("https://example.com/", 0);
    }

    private static void extractLinksRecursively(String url, int depth) {
        if (depth > 5 || visitedUrls.contains(url)) {
            return;
        }

        System.out.println("Visiting " + url);
        visitedUrls.add(url);

        try {
            Document doc = Jsoup.connect(url).get();
            Elements links = doc.select("a[href]");
            for (Element link : links) {
                String nextUrl = link.attr("abs:href");
                extractLinksRecursively(nextUrl, depth + 1);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
```
このコードは、同じページを何度も再訪しないように、訪問したURLをセットで追跡します。また、無限ループにはまらないように再帰の深さを制限しています。extractLinksRecursivelyメソッドのdepthパラメータの値を変更することで、最大深度を調整できます。

Web サイトのすべてのページからリンクを再帰的に抽出することは、リソース集約的で時間がかかる可能性があることに注意してください。このアプローチは慎重に使用し、多くのリクエストでウェブサイトを圧倒しないことが重要です。
Yes, we can modify the code to extract links recursively from all pages on a website using a depth-first search approach. Here's an updated Java code using Jsoup library to extract links from all pages on a website recursively:
```
public class RecursiveLinkExtractor {
    private static Set<String> visitedUrls = new HashSet<>();

    public static void main(String[] args) {
        extractLinksRecursively("https://example.com/", 0);
    }

    private static void extractLinksRecursively(String url, int depth) {
        if (depth > 5 || visitedUrls.contains(url)) {
            return;
        }

        System.out.println("Visiting " + url);
        visitedUrls.add(url);

        try {
            Document doc = Jsoup.connect(url).get();
            Elements links = doc.select("a[href]");
            for (Element link : links) {
                String nextUrl = link.attr("abs:href");
                extractLinksRecursively(nextUrl, depth + 1);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
```
This code keeps track of visited URLs in a Set to avoid revisiting the same page multiple times. It also limits the depth of recursion to avoid getting stuck in an infinite loop. You can adjust the maximum depth by changing the value of the depth parameter in the extractLinksRecursively method.

Note that recursively extracting links from all pages on a website can be resource-intensive and time-consuming. It's important to use this approach judiciously and not overwhelm a website with too many requests.