使用JSoup解析站点HTML提取链接失败的问题求助
问题排查&解决方案
- 第一类问题:第一版目标HTML存在明显的标签不闭合错误,比如
<a href="#" rel="29" data-video="example.com">Xstreamcdn</div>这类代码,a标签内直接出现了无对应开标签的div闭标签,Jsoup解析不规范HTML时可能会截断结构,导致选择不到对应a标签。 - 第二类问题:你当前的代码没有做非空判断,
getElementsByClass返回的是多元素集合,如果站点反爬拦截、返回的HTML结构发生变化,会直接触发空指针异常。 - 第三类问题:你补充的第二版HTML结构和第一版完全不同,链接存储在li标签的
data-vs属性中,不是a标签的data-video属性,需要对应修改选择器逻辑。 - 第四类通用问题:Jsoup默认请求没有携带浏览器UA等头信息,很多站点会判定为爬虫返回空页面/错误页面,导致无法匹配到目标元素。
针对第一版带anime_muti_link类的HTML修正代码
try { Document doc = Jsoup.connect(URL) // 模拟安卓Chrome浏览器UA,规避基础反爬拦截 .userAgent("Mozilla/5.0 (Linux; Android 10; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36") .get(); // 先定位目标容器,非空判断避免崩溃 Element linkContainer = doc.selectFirst(".anime_muti_link"); if (linkContainer == null) { Log.e("CALLING_URL", "未找到链接容器,可打印doc.html()检查返回的页面是否正常"); return; } // 仅选择带data-video属性的a标签,过滤无效元素 Elements links = linkContainer.select("a[data-video]"); for (Element link : links) { String videoUrl = link.attr("data-video").trim(); if (!videoUrl.startsWith("http")) { // 如果是//开头的协议相对地址用https:拼接,纯域名则加https:// videoUrl = videoUrl.startsWith("//") ? "https:" + videoUrl : "https://" + videoUrl; } arrayList.add(videoUrl); } Log.d("CALLING_URL", "提取到的链接:" + arrayList); } catch (IOException e) { Log.e("CALLING_URL", "页面请求失败:" + e.getMessage()); e.printStackTrace(); }
针对第二版带servers类ul的HTML修正代码
try { Document doc = Jsoup.connect(URL) .userAgent("Mozilla/5.0 (Linux; Android 10; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36") .get(); Element serverList = doc.selectFirst("ul.servers"); if (serverList == null) { Log.e("CALLING_URL", "未找到服务器列表容器"); return; } Elements serverItems = serverList.select("li[data-vs]"); for (Element item : serverItems) { String videoUrl = item.attr("data-vs").trim(); arrayList.add(videoUrl); } Log.d("CALLING_URL", "提取到的链接:" + arrayList); } catch (IOException e) { Log.e("CALLING_URL", "页面请求失败:" + e.getMessage()); e.printStackTrace(); }
内容的提问来源于stack exchange,提问作者Meggan Sam
相关产品推荐
相关产品推荐

