HTML ファイルから完全なリンクを抽出したい。フルリンクとは絶対リンクのことです。この目的のためにTikaを使用しました。これが私のコードです:
URL url = new URL("http://www.domainname.com/");
InputStream input = url.openStream();
LinkContentHandler linkHandler = new LinkContentHandler();
ContentHandler textHandler = new BodyContentHandler();
ToHTMLContentHandler toHTMLHandler = new ToHTMLContentHandler();
TeeContentHandler teeHandler = new TeeContentHandler(linkHandler,
textHandler, toHTMLHandler);
Metadata metadata = new Metadata();
ParseContext parseContext = new ParseContext();
HtmlParser parser = new HtmlParser();
parser.parse(input, teeHandler, metadata, parseContext);
System.out.println("title:\n" + metadata.get("title"));
for (Link link : linkHandler.getLinks()) {
System.out.println(link.getUri());
}
これにより、 /index.html や documents/US/economicreport.html のような相対 URL が得られますが、この場合の絶対 URL はhttp://domainname.com/index.htmlです。
ドメイン名を含む完全なリンクを意味するすべてのリンクを正しく取得するにはどうすればよいですか? Javaでそれを行うにはどうすればよいですか?