我编写了一个简单的Java Web Crawler,允许用户输入任何网页,它将搜索页面并将链接拉出为字符串。我没有使用像Jsoup这样的软件包。我的问题是,我如何只打印绝对URL而不是相对和绝对URL?
答案 0 :(得分:1)
检查src
或href
属性,看它是绝对的,相对的还是协议相对的(//stackoverflow.com/file
)。解析页面的URL。如果标记是协议相关的,请使用解析的页面URL中的协议,然后附加属性的内容。如果它是相对的,则从原始URL中剥离查询字符串和片段IF,并“追加”相对部分。请注意,相对网址可能看起来像/foo
,foo
,foo/bar
或./../../bar/../foo
,因此您可能希望在打印前解析路径遍历。
编辑:
查看URL和Commons URL Builder。他们都会有所帮助。