java - 使用 Jsoup 以正确的格式从网页中提取相对链接

标签 java html html-parsing jsoup

我已经解析了一个网页的外链,我将使用 Jsoup 再次解析该网页。但问题是,链接的形式为:../../../pincode/india/andaman-and-nicobar-islands/。在这种形式下我无法解析它们。因此,在 stackoverflow 的其他帖子的帮助下,我使用 link.attr("abs:href") 转换为绝对网址。

我解析的第一个网页的网址是:http://www.mapsofindia.com/pincode/india/。解析后得到的绝对 URL 的形式为 http://www.mapsofindia.com/../pincode/india/andaman-and-nicobar-islands/。但我无法使用 Jsoup 进一步解析它们。所以当我执行以下语句时:

Jsoup.parse("http://www.mapsofindia.com/../pincode/india/andaman-and-nicobar-islands/");

它给出了 HTTP 400 错误,即错误的请求。所以我认为 URL 存在一些问题。那么任何人都可以帮助我解决上述问题,以正确的方式获取网址,以便我可以进一步解析它们。谢谢。

最佳答案

请测试这两件事:

  1. 尝试使用 link.absUrl("href") 而不是 link.attr("abs:href")
  2. 检查基本 URI(在元素或文档上调用 baseUri())

顺便说一句。你最好使用 connect() 方法来做这件事:

Document doc = Jsoup.connect("http://<your url here>").get();

关于java - 使用 Jsoup 以正确的格式从网页中提取相对链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983833/

相关文章:

java - 通过java.io创建pdf

java - 迭代枚举,保存类,然后初始化类并将它们放入映射中

javascript - 没有API时如何从首页的购物车中获取商品

java - 如何使用JAVA从html页面获取表格

java - 用jsoup解析表数据

java - 我必须进行类型转换,但他们的示例不需要(Jsoup 文档类型)

java - 使用java在内存中创建一个excel文件并作为字节传递以供下载

html - 样式化html5导航栏

jquery 隐藏或显示图像组

ruby - 为什么 Array.to_s 返回括号?