JSoup获取网页中的链接

在使用JSoup进行网页解析的过程中,我们常常被要求获取网页中的链接。通过查看网页的源代码我们可以发现,网页中的链接一般是作为不同标签的属性来保存的,例如标签a中的href,标签img中的src等。那么很显然我们可以通过JSoup首先获取链接对应的标签,然后再获取相应的属性得到链接,如下所示

Document doc = JSoup.connect(url).get();   //使用JSoup访问网页,并获取网页内容

String imgLink = doc.select("img").first().attr("src");  //获取img标签下的链接

String aLink = doc.select("a").first().attr("href");  //获取a标签下面的链接

测试输出:

src:  get_sugar_image.action?download=true&scale=0.4&outputType=png

href:  show_glycan.action?glycanSequenceId=359

是不是感觉结果很奇怪,返回网页发现这个结果的确是网页上面保存的数据,也就是说网页上面并没有保存链接的完整的URL地址,而是默认将当前网页地址作为网页中链接的前缀访问的。那么,我们如何获取可访问的链接地址呢? 通过调试,我发现在获取属性值时使用以下方式--属性值前面加上"abs:"

String imgLink = doc.select("img").first().attr("abs:src");  //获取img标签下的链接完整url

String aLink = doc.select("a").first().attr("abs:href");  //获取a标签下面的链接完整url

测试输出:

src:  http://unicarb-db.biomedicine.gu.se//unicarbdb/get_sugar_image.action?download=true&scale=0.4&outputType=png

href: http://unicarb-db.biomedicine.gu.se//unicarbdb/show_glycan.action?glycanSequenceId=359


猜你喜欢

转载自blog.csdn.net/yangfeisc/article/details/44175685
今日推荐