如何在Kotlin中抓取简单文本?使用Jsoup返回Null求解决
解决Kotlin中Jsoup抓取纯文本页面返回空的问题
问题原因
目标页面是PHP直接echo输出的纯文本,没有完整的HTML结构(比如<html>、<body>这类标签)。Jsoup的get()方法会自动尝试补全HTML结构,但对于这种极简的纯文本内容,解析后的DOM结构里body元素可能没有实际内容,导致select("body")返回空。
解决方案
直接获取响应的原始纯文本,不需要通过DOM解析:
// 执行请求并获取响应 val response = Jsoup.connect("https://rezaapp.downloadseriesmovie.ir/maintxt.php").execute() // 提取纯文本内容 val plainText = response.text() println(plainText)
如果遇到服务器拦截请求(比如检测非浏览器请求),可以添加请求头模拟浏览器:
val response = Jsoup.connect("https://rezaapp.downloadseriesmovie.ir/maintxt.php") .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36") .execute() val plainText = response.text() println(plainText)
补充说明
当目标资源是纯文本、JSON这类非HTML内容时,用Jsoup的execute()方法直接获取响应内容比解析成HTML文档更高效,也能避免DOM解析带来的问题。
内容的提问来源于stack exchange,提问作者Reza Zeraati
相关产品推荐
相关产品推荐

