Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么;http://www.stackoverflow.com" 未被解析,但;http://www.javatpoint.com/java-tutorial" 正在被解析_Java_Html Parsing_Jsoup - Fatal编程技术网

为什么;http://www.stackoverflow.com" 未被解析,但;http://www.javatpoint.com/java-tutorial" 正在被解析

为什么;http://www.stackoverflow.com" 未被解析,但;http://www.javatpoint.com/java-tutorial" 正在被解析,java,html-parsing,jsoup,Java,Html Parsing,Jsoup,我正在努力学习jsoup的基本方法。我试图获得所有的超链接 但我当时使用了link,我无法获取该页面上的所有超链接,但当我将其更改为 它起作用了 有人能解释一下原因吗 这是代码 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

我正在努力学习jsoup的基本方法。我试图获得所有的超链接 但我当时使用了link,我无法获取该页面上的所有超链接,但当我将其更改为 它起作用了

有人能解释一下原因吗

这是代码

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.stackoverflow.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请求来携带某些标题。一个突出的例子是userAgent头。例如,我们将使用以下方法:

Document doc = Jsoup
    .connect("http://www.stackoverflow.com")
    .userAgent("Mozilla/5.0")
    .get();
旁注:
您应该从不尝试捕获异常,然后默默地忽略可能的失败案例。至少在那里做一些日志记录-否则你的程序将很难调试。

如果出现“stackoverflow”,控制台上不会打印任何内容。可能有一个异常,你跳过了,所以你看不到问题所在。@hotzst,我现在添加了IOException,所以它的给出状态码=403错误。这意味着在stackoverflow上解析是被禁止的。谢谢你的帮助。有没有办法让我解析一个被禁止的网站??,非常感谢。我几乎失去了解析这个页面的希望。