【发布时间】:2014-03-07 06:16:29
【问题描述】:
我编写了一个简单的 Java Web Crawler,它允许用户输入任何网页,它会搜索整个页面并将链接作为字符串提取出来。我没有使用像 Jsoup 这样的包。我的问题是,我如何只打印绝对 URL 而不是相对 URL 和绝对 URL?
【问题讨论】:
标签: java url web-crawler relative-path absolute-path
我编写了一个简单的 Java Web Crawler,它允许用户输入任何网页,它会搜索整个页面并将链接作为字符串提取出来。我没有使用像 Jsoup 这样的包。我的问题是,我如何只打印绝对 URL 而不是相对 URL 和绝对 URL?
【问题讨论】:
标签: java url web-crawler relative-path absolute-path
检查 src 或 href 属性以查看它是绝对的、相对的还是协议相对的 (//stackoverflow.com/file)。解析页面的 URL。如果标记是协议相关的,则使用解析的页面 URL 中的协议,然后附加属性的内容。如果它是相对的,则从原始 URL 中去除查询字符串和片段 IF,并“附加”相对部分。请注意,相对 URL 可能类似于 /foo、foo、foo/bar 或 ./../../bar/../foo,因此您可能需要在打印之前解析路径遍历。
编辑:
看看URL 和Commons URL Builder。他们都会有所帮助。
【讨论】: