【问题标题】:Jsoup Not Parsing Particluar DIvJsoup 不解析特定的 DIv
【发布时间】:2018-06-13 07:31:29
【问题描述】:

我无法使用 Jsoup 库从 here 获取 div 'live ticker'

这是我的代码:

Document doc = Jsoup.connect(Link).get();

Element link = doc.select("div.data-of-match-live-experience").first();
Elements squad = doc.select("div.data-of-match-live-experience");
Elements li = squad.select("li"); // select all li from ul

Log.d("jsoup", "size: " + li.size());

【问题讨论】:

  • 您在inspect 元素中看到了由javascript 生成的标签并试图用Jsoup 对其进行解析?这是不可能的。为此,您将需要一个无头浏览器

标签: java android web-scraping jsoup


【解决方案1】:

此标记中的文本不是初始 html 的一部分,而是在页面加载后由 JavaScript 设置的。您可以通过在浏览器中禁用 JavaScript 来检查它。 Jsoup 只获取静态 html,不执行 JavaScript 代码。

当您检查从页面建立的连接时,您会发现值是通过对该 API 的请求更新的:

https://shapeshifter-api.onefootball.com/v1/en/match/live-experience/5/6700/718129

向这个url发出请求,解析器结果,你会得到想要的值。

【讨论】:

  • 太好了@Luk,你是怎么得到链接的?假设我们正处于现场比赛的中间。那么我将如何解析实时数据呢?请指导。
  • 您可以使用例如developers.google.com/web/tools/chrome-devtools/… 来跟踪建立了哪些连接。其他浏览器应该有类似的东西。检查实时比赛期间发送了哪些请求以及哪些请求返回了您正在查找的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 2012-12-27
  • 1970-01-01
  • 2012-10-01
  • 2013-11-14
  • 2020-10-24
相关资源
最近更新 更多