为什么 "http://www.stackoverflow.com" 没有被解析而 "http://www.javatpoint.com/java-tutorial" 被解析

Why "http://www.stackoverflow.com" is not getting parsed but "http://www.javatpoint.com/java-tutorial" is getting parsed

我正在努力学习jsoup.I的基本方法试图获得所有的hyperlinks 一个特定的网站 page.But 我使用 Whosebug link 然后,我无法在那个页面上获得所有的 hyperlinks,但在另一边当我改变它时到 javatpoint 它正在工作。

谁能解释为什么?

这是代码。

import java.io.IOException;

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

import java.io.*;

import org.jsoup.nodes.Document;

class Repo {
    // String html;
    public static void main(String s[]) throws IOException {
        try {
            Document doc = Jsoup.connect("http://www.javatpoint.com/java-tutorial").get();
            // Document doc=Jsoup.connect("http://www.whosebug.com").get();

            System.out.println("doc");
            // Elements link=(Elements)doc.select("span[class]");
            // Elements link = doc.select("span").first();
            // Elements link = (Elements)doc.select("span");
            Elements link = (Elements) doc.select("a[href]");

            for (Element el : link) {
                // System.out.print("-");
                // System.out.println(el.attr("class"));
                String str = el.attr("href");
                System.out.println(str);

            }
        } catch (Exception e) {
        }
    }
}

许多网站要求有效的 http 请求携带某些 headers。一个突出的例子是 userAgent header。所以例如将使用这个:

Document doc = Jsoup
    .connect("http://www.whosebug.com")
    .userAgent("Mozilla/5.0")
    .get();

旁注: 你应该从不尝试捕获异常,然后静静地忽略可能的失败案例。至少在那里做一些日志记录 - 否则你的程序将很难调试。