为什么;http://www.stackoverflow.com" 未被解析,但;http://www.javatpoint.com/java-tutorial" 正在被解析
我正在努力学习jsoup的基本方法。我试图获得所有的超链接 但我当时使用了link,我无法获取该页面上的所有超链接,但当我将其更改为 它起作用了 有人能解释一下原因吗 这是代码为什么;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
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上解析是被禁止的。谢谢你的帮助。有没有办法让我解析一个被禁止的网站??,非常感谢。我几乎失去了解析这个页面的希望。