Java 如何使用jsoup输入url链接

Java 如何使用jsoup输入url链接,java,web-crawler,jsoup,Java,Web Crawler,Jsoup,我制作了两个简单的html页面 第1页: <html> <head> </head> <body> <a href="page2.html">enter page 2</a> <p> some data </p> </body> </html> 现在我要做的是,从第1页输入第2页(它在我的计算机上的localy),并解析它 我试着这样做: Docume

我制作了两个简单的html页面

第1页:

<html>
 <head>
 </head>
 <body>
   <a href="page2.html">enter page 2</a>
 <p>
    some data
 </p>
</body>
</html>
现在我要做的是,从第1页输入第2页(它在我的计算机上的localy),并解析它

我试着这样做:

Document doc2 = Jsoup.connect(absHref).get();
但它不起作用,给我做404厄罗

编辑:

从@JonasCz的一个小重播中,我尝试了这个方法:它是有效的,我只是认为有一个更好更聪明的方法

File file = new File(args[0]);
String path = file.getParent() + "\\";
Document doc = Jsoup.parse(file, "UTF-8", "http://example.com/"); //file = page1.html
Element link = doc.select("a").first();
String Href = link.attr("href"); // "page2.html/"
File file2 = new File(path+href);
Document doc2 = Jsoup.parse(file2, "UTF-8", "http://example.com/");

谢谢你

你走的路是对的,但你没有创建绝对URL

而不是:

String absHref = link.attr("href"); // "page2.html/"
使用 :

剩下的就跟你现在做的一样


不幸的是,Jsoup不是一个web爬虫程序,而是唯一一个能够直接连接和获取页面的解析器。爬行逻辑-例如,下一步获取/访问什么由您负责实施。你可以在谷歌上搜索Java的网络爬虫,也许其他东西更合适。

你可以创建一组绝对的HREF,并只解析/访问那些你仍然可以添加到集合中的。我不同意你的观点,我认为你可以用它制作一个小的网络爬虫,带有一点递归功能。对于OP:如果你想获得实际的第二个HTML文件的绝对URL,你需要在解析时指定本地HTML文件的路径,而不是
example.com
作为你的基本URL,否则这不会像预期的那样工作。JonasCZ,我试过了,它工作得很好。但是我相信有一个更聪明的方法。@Yogi_Bear,这是你的第一个评论:当然,但是使用已经存在的东西(例如Crawler4J)比自己写东西更容易。@Yogi_Bear你不同意我在哪一部分??如果你用递归实现它,你就可以自己实现它。这不是我的回答所说的吗?不管怎样,做你想做的,毕竟重新发明轮子并不是那么糟糕。
File file = new File(args[0]);
String path = file.getParent() + "\\";
Document doc = Jsoup.parse(file, "UTF-8", "http://example.com/"); //file = page1.html
Element link = doc.select("a").first();
String Href = link.attr("href"); // "page2.html/"
File file2 = new File(path+href);
Document doc2 = Jsoup.parse(file2, "UTF-8", "http://example.com/");
String absHref = link.attr("href"); // "page2.html/"
String absHref = link.absUrl("href"); // this wil give you http://example.com/page2.html