我試圖從各個網站解析出導航鏈接。從相對URL轉換爲絕對URL不正確Android JSoup
我一直有與使用同./
這裏開頭的相對格式中的一個特定部位的問題與相關PARAM值的代碼片段中的註釋:
// url = http://megatokyo.com/strip/1456
// selector = ".next a"
// ele = <a href="./strip/1457">Next</a>
// attr = "href"
Element ele = doc.select(selector).get(index);
ele.setBaseUri(url);
String absoluteUrl = ele.absUrl(attr).trim().replaceAll("\n", "");
Jsoup返回:
http://megatokyo.com/strip/strip/1457
其實真正的鏈接是:
http://megatokyo.com/strip/1457
Fro我的理解是Jsoup在這裏給出了正確的鏈接,因爲./
指的是當前目錄(http://megatokyo.com/strip/
),這意味着該錨點在網站上的做法不正確。不過,Chrome,Firefox和IE都解析相對URL以指向下一個條帶,而不是/strip/strip/1457
。有什麼辦法可以糾正這種行爲,而不會在其他情況下破壞相對URL?
很好解釋。不幸的是,我忘了給我的問題添加一個相關的信息 - 我沒有使用Jsoup在這個實例中加載URL,只是解析出屬性。因爲這樣的baseURI不是隱式設置的。除了使用選擇器手動解析外,還有什麼辦法從這個文檔(它包含完整的源文件)解析出baseURI? – alexgophermix
@alexgophermix好吧,想知道,爲什麼你不得不打電話給setBaseUri。更新了我的答案:只是解析基本標籤的頭部並對其進行處理。出於好奇:你爲什麼不使用jsoup來獲取頁面/你在用什麼? –
我有一個異步網絡任務,加載了各種回調和配置,並在整個應用程序的其他地方使用,不需要文件解析。可能還有改進的空間,但現在它正在工作中 – alexgophermix