Java 專案中 Jsoup 可解析完整 HTML,但在 Android 專案中僅能解析部分,選擇器回傳空指標。
AndroidManifest.xml 未加 <uses-permission android:name="android.permission.INTERNET" />。Thread、AsyncTask、RxJava 或 Coroutine。WebView + evaluateJavascript 或 Selenium/Playwright (需雲端) 或尋找網站的 API 介面直接呼叫。Dalvik/...,需偽裝為瀏覽器 UA。Jsoup.connect(url).header("Accept-Charset", "GBK,UTF-8").get()。// Kotlin Coroutine 範例
lifecycleScope.launch(Dispatchers.IO) {
try {
val doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0")
.timeout(10000)
.get()
// 解析...
withContext(Dispatchers.Main) { updateUI(doc) }
} catch (e: Exception) { Log.e("Jsoup", "Parse failed", e) }
}
Android 環境下網路請求必須異步、加權限、偽裝 UA;若目站為 SPA 動態渲染,Jsoup 根本無法獲取完整 DOM,需轉向 API 或無頭瀏覽器方案。