我已经解析了一个网页的外链,我将使用 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 存在一些问题。那么任何人都可以帮助我解决上述问题,以正确的方式获取网址,以便我可以进一步解析它们。谢谢。
最佳答案
请测试这两件事:
- 尝试使用
link.absUrl("href")
而不是link.attr("abs:href")
- 检查基本 URI(在元素或文档上调用
baseUri()
)
顺便说一句。你最好使用 connect()
方法来做这件事:
Document doc = Jsoup.connect("http://<your url here>").get();
关于java - 使用 Jsoup 以正确的格式从网页中提取相对链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983833/