以下のスクリプトを適用して、最初に Web ページ内のすべてのリンクを取得しようとしています。次に、これらのリンクを再度使用したいと思います。しかし、デコードが常に機能するとは限らず、これにより不適切なリンクが発生し、404 エラーが発生します。
Document doc = Jsoup.connect(doi_con).ignoreContentType(true).get();
Elements links = doc.select("a[href]");
for (Element link : links) {
String url = link.absUrl("href");
//byte[] decodeds1= DatatypeConverter.parseBase64Binary(url);
//dec_url = DatatypeConverter.printBase64Binary(decodeds1);
dec_url = java.net.URLDecoder.decode(url, "UTF-8");
}
このコード内で、一部の URL ではデコード部分が機能しているようです。サンプルとして私が得たものは以下の通りです:
http://link.springer.com/signup-login?previousUrl=/article/10.1007%2Fs10899-005-5558-2
http://link.springer.com/article/10.1007/s10899-005-5558-2#kb-nav--main
最初のリンクのデコードでは機能しませんでしたが、後のリンクでは機能しました。
私は何が欠けていますか?上記のコードに見られるように、parseBase64Binary と printBase64Binary も試しましたが、やはり機能しませんでした。
前もって感謝します!