You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jsoup抓取Binance数据网页全部链接仅能获取头部链接问题咨询

问题根因

你要抓取的币安公开数据页面的交易对列表是前端JavaScript异步加载后动态渲染的,你用Jsoup直接请求拿到的是未执行JS的初始HTML源码,里面根本没有列表区域的tbody、td、对应链接等元素,所以不管怎么调整CSS选择器都拿不到目标内容,这不是选择器写法的问题,是获取的页面内容不对。

现有尝试的问题点

  • Elements tableLinks = doc.select("#listing a");:#listing是列表容器,但初始HTML中该容器为空,JS未执行完成前没有子元素
  • Elements tableElement = doc.getElementsByAttribute("tbody");:写法错误,tbody是标签名不是元素属性,就算修正为getElementsByTag("tbody"),初始HTML中也不存在该节点
  • Elements links = doc.select("a[href]");:只能匹配到初始HTML中静态写死的页头链接,也就是你现在拿到的非目标内容
  • Elements resultLinks = doc.select("td > a");:动态渲染的td和a节点在初始HTML中不存在,自然匹配不到结果

可行解决方案

方案1:直接调用底层列表接口(更高效)

该页面的列表本质是调取站点自身的公开存储查询接口返回的XML数据,不需要爬页面,按照你要的路径前缀构造查询请求即可,返回的XML里直接包含所有交易对的路径,直接解析XML就能拿到所有目标链接,无需处理前端渲染逻辑。

方案2:使用带JS渲染能力的工具爬取

如果必须通过页面抓取,需要替换纯静态HTML解析工具,使用Selenium、Playwright、HtmlUnit等支持JS执行的工具,等待页面JS执行完成、列表渲染完毕后,再用你之前写的td > a选择器就能正常匹配到目标链接。

内容的提问来源于stack exchange,提问作者JG-TLS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:06:04