如何使用jsoup输入url链接

时间:2016-01-19 22:02:47

标签: java web-crawler jsoup

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

1页:

src

第2页:

<html>
 <head>
 </head>
 <body>
   <a href="page2.html">enter page 2</a>
 <p>
    some data
 </p>
</body>
</html>

我想使用jsoup库

获取链接
<html>
 <head>
 </head>
 <body>
   <a href="page1.html">enter page 1</a>
   <a href="page3.html">enter page 3</a>
 <p>
    some other data
 </p>
</body>
</html>

现在我要做的是从第1页(它在我的计算机上的本地)输入第2页,并解析它。

我试着这样做:

Document doc = Jsoup.parse(file, "UTF-8", "http://example.com/"); //file = page1.html
Element link = doc.select("a").first();
String absHref = link.attr("href"); // "page2.html/"

但它起作用了,给我做了404恐怖

编辑:

通过@JonasCz的小重播,我尝试了这个:它正在运行,我认为有一种更好,更聪明的方式。

Document doc2 = Jsoup.connect(absHref).get();

谢谢

1 个答案:

答案 0 :(得分:1)

你走的是正确的,但你没有创建绝对的URL。

而不是:

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

使用 :

String absHref = link.absUrl("href"); // this wil give you http://example.com/page2.html

其余的就像你一样。

http://jsoup.org/apidocs/org/jsoup/nodes/Node.html

不幸的是,Jsoup不是一个网络爬虫,而只是能够直接连接和获取页面的解析器。爬行逻辑 - 例如。下一步获取/访问的内容是您实施的责任。您可以谷歌搜索Java的网络爬虫,也许其他更适合。